From 1bc7d4bb6fa8b1caae322498f7c31c9e59e41af8 Mon Sep 17 00:00:00 2001 From: Willem Haffmans Date: Thu, 22 May 2025 10:23:36 +0200 Subject: [PATCH] set users to host UId for convenience --- Makefile | 13 +++++--- srcs/.env | 2 +- srcs/docker-compose.yml | 31 ++++++++------------ srcs/requirements/mariadb/Dockerfile | 6 ++-- srcs/requirements/wordpress/Dockerfile | 8 ++++- srcs/requirements/wordpress/tools/install.sh | 2 ++ 6 files changed, 36 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 07603fc..7c2458d 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: whaffman +#+ # # +#+ # # Created: 2025/05/12 15:33:56 by whaffman #+# #+# # -# Updated: 2025/05/20 22:14:24 by whaffman ######## odam.nl # +# Updated: 2025/05/22 10:06:24 by whaffman ######## odam.nl # # # # **************************************************************************** # @@ -19,7 +19,9 @@ DATA_DIR = ./data WORDPRESS_DATA_DIR = $(DATA_DIR)/wordpress MARIADB_DATA_DIR = $(DATA_DIR)/mariadb -DC = $(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_FILE) --env-file $(DOCKER_ENV_FILE) --project-name "" +UID := $(shell id -u) + +DC = $(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_FILE) --env-file $(DOCKER_ENV_FILE) --project-name "" .PHONY: all build up down remove @@ -38,10 +40,10 @@ $(MARIADB_DATA_DIR): build: $(WORDPRESS_DATA_DIR) $(MARIADB_DATA_DIR) @echo "$(gub)Building Docker containers...$(reset)" - $(DC) build + $(DC) build --build-arg HOST_UID=$(UID) up: @echo "$(gub)Starting Docker containers...$(reset)" - $(DC) up -d --build + $(DC) up -d down: @echo "$(gub)Stopping Docker containers...$(reset)" @@ -50,6 +52,9 @@ down: clean: @echo "$(gub)Cleaning up Docker containers...$(reset)" $(DC) down --rmi local --volumes --remove-orphans + @rm -rf $(DATA_DIR) + + logs: @echo "$(gub)Displaying logs...$(reset)" diff --git a/srcs/.env b/srcs/.env index 40690f1..3eca304 100644 --- a/srcs/.env +++ b/srcs/.env @@ -19,7 +19,7 @@ WP_THEME=impressionist WP_USER=inception WP_USER_PASSWORD=42inception42 -WP_USER_EMAIL=inception@duinvoetje.nl +WP_USER_EMAIL=inception2@duinvoetje.nl diff --git a/srcs/docker-compose.yml b/srcs/docker-compose.yml index ed7ed31..6d6cbce 100644 --- a/srcs/docker-compose.yml +++ b/srcs/docker-compose.yml @@ -1,28 +1,22 @@ -version: '3.8' - services: mariadb: container_name: mariadb - restart: always + build: + context: ./requirements/mariadb + dockerfile: Dockerfile environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - build: - context: ./requirements/mariadb - dockerfile: Dockerfile networks: - docker-network volumes: - data_mariadb:/var/lib/mysql - + restart: always nginx: - restart: always container_name: nginx - environment: - - DOMAIN_NAME=${DOMAIN_NAME} build: context: ./requirements/nginx dockerfile: Dockerfile @@ -30,16 +24,18 @@ services: DOMAIN_NAME: ${DOMAIN_NAME} depends_on: - wordpress + environment: + - DOMAIN_NAME=${DOMAIN_NAME} ports: - '443:443' networks: - docker-network volumes: - data_wordpress:/var/www/html + restart: always wordpress: container_name: wordpress - restart: always build: context: ./requirements/wordpress dockerfile: Dockerfile @@ -48,30 +44,29 @@ services: environment: - DOMAIN_NAME=${DOMAIN_NAME} - - MYSQL_DATABASE=${MYSQL_DATABASE} - - MYSQL_USER=${MYSQL_USER} - - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - WP_TITLE=${WP_TITLE} - WP_DESCRIPTION=${WP_DESCRIPTION} + - WP_THEME=${WP_THEME} - WP_ADMIN=${WP_ADMIN} - WP_ADMIN_PASSWORD=${WP_ADMIN_PASSWORD} - WP_ADMIN_EMAIL=${WP_ADMIN_EMAIL} - - WP_THEME=${WP_THEME} - - WP_USER=${WP_USER} - WP_USER_PASSWORD=${WP_USER_PASSWORD} - WP_USER_EMAIL=${WP_USER_EMAIL} - networks: - docker-network volumes: - data_wordpress:/var/www/html + restart: always networks: diff --git a/srcs/requirements/mariadb/Dockerfile b/srcs/requirements/mariadb/Dockerfile index dc3a878..76a4487 100644 --- a/srcs/requirements/mariadb/Dockerfile +++ b/srcs/requirements/mariadb/Dockerfile @@ -10,9 +10,11 @@ RUN apk add --no-cache \ mariadb-client && \ rm -rf /var/cache/apk/* +ARG HOST_UID + # Create a new user and group -RUN addgroup -S mariadb && \ - adduser -S mariadb -G mariadb +RUN addgroup -S -g $HOST_UID mariadb && \ + adduser -S -u $HOST_UID mariadb -G mariadb # Create the necessary directories RUN mkdir -p /var/run/mysqld && \ diff --git a/srcs/requirements/wordpress/Dockerfile b/srcs/requirements/wordpress/Dockerfile index e84d532..130d3c2 100644 --- a/srcs/requirements/wordpress/Dockerfile +++ b/srcs/requirements/wordpress/Dockerfile @@ -1,5 +1,7 @@ FROM alpine:3.20 +ARG HOST_UID + # Install WordPress and its dependencies RUN apk add --no-cache \ php83 \ @@ -19,7 +21,9 @@ RUN apk add --no-cache \ rm -rf /var/cache/apk/* # Add a new user and group -RUN adduser -D -g 'wordpress' wordpress +# Create group with GID = HOST_UID, then user with UID = HOST_UID and GID = HOST_UID +RUN addgroup -g ${HOST_UID} wordpress && \ + adduser -D -u ${HOST_UID} -G wordpress wordpress # Set ownership of the working directory RUN mkdir -p /var/www/html && \ @@ -34,6 +38,8 @@ COPY ./conf/www.conf /etc/php83/php-fpm.d/www.conf RUN echo "memory_limit = 512M" >> /etc/php83/php.ini + + # Copy and set permissions for the install script COPY ./tools/install.sh /usr/local/bin/install.sh RUN chmod +x /usr/local/bin/install.sh diff --git a/srcs/requirements/wordpress/tools/install.sh b/srcs/requirements/wordpress/tools/install.sh index 4bfd993..9542eaa 100644 --- a/srcs/requirements/wordpress/tools/install.sh +++ b/srcs/requirements/wordpress/tools/install.sh @@ -44,4 +44,6 @@ wp theme install --allow-root \ echo "WordPress installation completed." +chown -R wordpress:wordpress /var/www/html + exec "$@" \ No newline at end of file