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> +#+ #
# +#+ #
# 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)"

View File

@ -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

View File

@ -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:

View File

@ -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 && \

View File

@ -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

View File

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