1- # https://docs.docker.com/engine/reference/builder/
2- # https://hub.docker.com/_/debian
1+ # Use the Debian Bookworm Slim base image
32FROM debian:bookworm-slim
43
54# Configure apt not to prompt during docker build
@@ -47,6 +46,9 @@ RUN useradd -m -s /bin/bash sysadmin && \
4746 echo "sysadmin:sysadmin" | chpasswd && \
4847 usermod -aG sudo sysadmin
4948
49+ # Copy the sudoers file for sysadmin user to the appropriate directory
50+ COPY ./web/etc-sudoers.d/sysadmin_all_nopass /etc/sudoers.d/sysadmin_all_nopass
51+
5052# Ensure SSH directory exists with correct permissions
5153RUN mkdir -p /home/sysadmin/.ssh && \
5254 chown sysadmin:sysadmin /home/sysadmin/.ssh && \
@@ -57,10 +59,10 @@ RUN mkdir -p /run/sshd
5759
5860# Add Apache2's www-data user to sudo group and enable passwordless startup
5961RUN adduser www-data sudo
60- COPY web/config-web /www-data_startupservice /etc/sudoers.d/www-data_startupservice
62+ COPY ./ web/etc-sudoers.d /www-data_startupservice /etc/sudoers.d/www-data_startupservice
6163
6264# Add Apache2 service startup script
63- COPY web/config- web/startupservice.sh /startupservice.sh
65+ COPY ./ web/startupservice.sh /startupservice.sh
6466RUN chmod +x /startupservice.sh
6567CMD ["sudo" , "--preserve-env" , "/startupservice.sh" ]
6668
@@ -76,50 +78,13 @@ RUN a2enmod php8.2
7678RUN a2enmod rewrite
7779
7880# Configure PHP
79- COPY web/config-web/90-local.ini /etc/php/8.2/apache2/conf.d/
80-
81- # Install WordPress CLI (WP-CLI)
82- # https://wp-cli.org/#installing
83- RUN curl -L \
84- https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
85- -o wp-cli.phar \
86- && chmod +x wp-cli.phar \
87- && mv wp-cli.phar /usr/local/bin/wp
81+ COPY ./web/etc-php-8.2-apache2-conf.d/90-local.ini /etc/php/8.2/apache2/conf.d/
8882
89- # Create WP-CLI directory for www-data
90- RUN mkdir /var/www/.wp-cli
91- RUN chown -R www-data:www-data /var/www/.wp-cli
83+ # Create the wp directory and set permissions
84+ RUN mkdir -p /usr/local/bin/wp/
85+ RUN chown -R www-data:www-data /usr/local/bin/wp/
9286
9387# Create the dev directory and set permissions
9488RUN mkdir -p /var/www/dev/wp-content/uploads
9589RUN chown -R www-data:www-data /var/www/dev
9690
97- # Use WP-CLI to install WordPress
98- USER www-data
99- WORKDIR /var/www/dev
100- ARG WP_VERSION
101- RUN wp core download --version=$WP_VERSION
102-
103- # Add WordPress basic configuration
104- # 1) Download wp-config-docker.php for use as wp-config.php. Friendly view at:
105- # https://github.com/docker-library/wordpress/blob/master/latest/php8.2/apache/wp-config-docker.php
106- RUN curl -L \
107- https://raw.githubusercontent.com/docker-library/wordpress/master/latest/php8.2/apache/wp-config-docker.php \
108- -o /var/www/dev/wp-config.php
109-
110- # 2) Use awk to replace all instances of "put your unique phrase here" with a
111- # properly unique string (for AUTH_KEY and friends to have safe defaults if
112- # they aren't specified with environment variables)
113- # Based on:
114- # https://github.com/docker-library/wordpress/blob/master/latest/php8.2/apache/docker-entrypoint.sh
115- RUN awk ' \
116- /put your unique phrase here/ { \
117- cmd = "head -c1m /dev/urandom | sha1sum | cut -d\\ -f1"; \
118- cmd | getline str; \
119- close(cmd); \
120- gsub("put your unique phrase here", str); \
121- } \
122- { print } \
123- ' /var/www/dev/wp-config.php > /var/www/dev/wp-config.tmp \
124- && mv /var/www/dev/wp-config.tmp /var/www/dev/wp-config.php
125-
0 commit comments