set users to host UId for convenience

This commit is contained in:
Willem Haffmans 2025-05-22 10:23:36 +02:00
parent 96e9821448
commit 1bc7d4bb6f
6 changed files with 36 additions and 26 deletions

View File

@ -6,7 +6,7 @@
# By: whaffman <whaffman@student.codam.nl> +#+ # # By: whaffman <whaffman@student.codam.nl> +#+ #
# +#+ # # +#+ #
# Created: 2025/05/12 15:33:56 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 WORDPRESS_DATA_DIR = $(DATA_DIR)/wordpress
MARIADB_DATA_DIR = $(DATA_DIR)/mariadb 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 .PHONY: all build up down remove
@ -38,10 +40,10 @@ $(MARIADB_DATA_DIR):
build: $(WORDPRESS_DATA_DIR) $(MARIADB_DATA_DIR) build: $(WORDPRESS_DATA_DIR) $(MARIADB_DATA_DIR)
@echo "$(gub)Building Docker containers...$(reset)" @echo "$(gub)Building Docker containers...$(reset)"
$(DC) build $(DC) build --build-arg HOST_UID=$(UID)
up: up:
@echo "$(gub)Starting Docker containers...$(reset)" @echo "$(gub)Starting Docker containers...$(reset)"
$(DC) up -d --build $(DC) up -d
down: down:
@echo "$(gub)Stopping Docker containers...$(reset)" @echo "$(gub)Stopping Docker containers...$(reset)"
@ -50,6 +52,9 @@ down:
clean: clean:
@echo "$(gub)Cleaning up Docker containers...$(reset)" @echo "$(gub)Cleaning up Docker containers...$(reset)"
$(DC) down --rmi local --volumes --remove-orphans $(DC) down --rmi local --volumes --remove-orphans
@rm -rf $(DATA_DIR)
logs: logs:
@echo "$(gub)Displaying logs...$(reset)" @echo "$(gub)Displaying logs...$(reset)"

View File

@ -19,7 +19,7 @@ WP_THEME=impressionist
WP_USER=inception WP_USER=inception
WP_USER_PASSWORD=42inception42 WP_USER_PASSWORD=42inception42
WP_USER_EMAIL=inception@duinvoetje.nl WP_USER_EMAIL=inception2@duinvoetje.nl

View File

@ -1,28 +1,22 @@
version: '3.8'
services: services:
mariadb: mariadb:
container_name: mariadb container_name: mariadb
restart: always build:
context: ./requirements/mariadb
dockerfile: Dockerfile
environment: environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER} - MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_PASSWORD=${MYSQL_PASSWORD}
build:
context: ./requirements/mariadb
dockerfile: Dockerfile
networks: networks:
- docker-network - docker-network
volumes: volumes:
- data_mariadb:/var/lib/mysql - data_mariadb:/var/lib/mysql
restart: always
nginx: nginx:
restart: always
container_name: nginx container_name: nginx
environment:
- DOMAIN_NAME=${DOMAIN_NAME}
build: build:
context: ./requirements/nginx context: ./requirements/nginx
dockerfile: Dockerfile dockerfile: Dockerfile
@ -30,16 +24,18 @@ services:
DOMAIN_NAME: ${DOMAIN_NAME} DOMAIN_NAME: ${DOMAIN_NAME}
depends_on: depends_on:
- wordpress - wordpress
environment:
- DOMAIN_NAME=${DOMAIN_NAME}
ports: ports:
- '443:443' - '443:443'
networks: networks:
- docker-network - docker-network
volumes: volumes:
- data_wordpress:/var/www/html - data_wordpress:/var/www/html
restart: always
wordpress: wordpress:
container_name: wordpress container_name: wordpress
restart: always
build: build:
context: ./requirements/wordpress context: ./requirements/wordpress
dockerfile: Dockerfile dockerfile: Dockerfile
@ -48,30 +44,29 @@ services:
environment: environment:
- DOMAIN_NAME=${DOMAIN_NAME} - DOMAIN_NAME=${DOMAIN_NAME}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- DB_HOST=${DB_HOST} - DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT} - DB_PORT=${DB_PORT}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- WP_TITLE=${WP_TITLE} - WP_TITLE=${WP_TITLE}
- WP_DESCRIPTION=${WP_DESCRIPTION} - WP_DESCRIPTION=${WP_DESCRIPTION}
- WP_THEME=${WP_THEME}
- WP_ADMIN=${WP_ADMIN} - WP_ADMIN=${WP_ADMIN}
- WP_ADMIN_PASSWORD=${WP_ADMIN_PASSWORD} - WP_ADMIN_PASSWORD=${WP_ADMIN_PASSWORD}
- WP_ADMIN_EMAIL=${WP_ADMIN_EMAIL} - WP_ADMIN_EMAIL=${WP_ADMIN_EMAIL}
- WP_THEME=${WP_THEME}
- WP_USER=${WP_USER} - WP_USER=${WP_USER}
- WP_USER_PASSWORD=${WP_USER_PASSWORD} - WP_USER_PASSWORD=${WP_USER_PASSWORD}
- WP_USER_EMAIL=${WP_USER_EMAIL} - WP_USER_EMAIL=${WP_USER_EMAIL}
networks: networks:
- docker-network - docker-network
volumes: volumes:
- data_wordpress:/var/www/html - data_wordpress:/var/www/html
restart: always
networks: networks:

View File

@ -10,9 +10,11 @@ RUN apk add --no-cache \
mariadb-client && \ mariadb-client && \
rm -rf /var/cache/apk/* rm -rf /var/cache/apk/*
ARG HOST_UID
# Create a new user and group # Create a new user and group
RUN addgroup -S mariadb && \ RUN addgroup -S -g $HOST_UID mariadb && \
adduser -S mariadb -G mariadb adduser -S -u $HOST_UID mariadb -G mariadb
# Create the necessary directories # Create the necessary directories
RUN mkdir -p /var/run/mysqld && \ RUN mkdir -p /var/run/mysqld && \

View File

@ -1,5 +1,7 @@
FROM alpine:3.20 FROM alpine:3.20
ARG HOST_UID
# Install WordPress and its dependencies # Install WordPress and its dependencies
RUN apk add --no-cache \ RUN apk add --no-cache \
php83 \ php83 \
@ -19,7 +21,9 @@ RUN apk add --no-cache \
rm -rf /var/cache/apk/* rm -rf /var/cache/apk/*
# Add a new user and group # 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 # Set ownership of the working directory
RUN mkdir -p /var/www/html && \ 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 RUN echo "memory_limit = 512M" >> /etc/php83/php.ini
# Copy and set permissions for the install script # Copy and set permissions for the install script
COPY ./tools/install.sh /usr/local/bin/install.sh COPY ./tools/install.sh /usr/local/bin/install.sh
RUN chmod +x /usr/local/bin/install.sh RUN chmod +x /usr/local/bin/install.sh

View File

@ -44,4 +44,6 @@ wp theme install --allow-root \
echo "WordPress installation completed." echo "WordPress installation completed."
chown -R wordpress:wordpress /var/www/html
exec "$@" exec "$@"