From 0d50d39002aa12f32160c1c9a248e6c90371e770 Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Sat, 6 Jan 2024 15:22:20 +0100 Subject: [PATCH] Update PHP Version --- .../{build-manual.yml => manual-build.yml} | 0 build.sh | 2 +- src/docker/7.2/Dockerfile | 20 ++++--- src/docker/7.3/Dockerfile | 21 ++++--- src/docker/7.4/Dockerfile | 20 ++++--- src/docker/8.0/Dockerfile | 21 ++++--- src/docker/8.1/Dockerfile | 20 ++++--- src/docker/8.2/Dockerfile | 18 +++--- src/docker/8.3/Dockerfile | 21 ++++--- src/entrypoint.sh | 57 ++++++++++--------- src/supervisor/supervisord.conf | 4 +- 11 files changed, 116 insertions(+), 88 deletions(-) rename .github/workflows/{build-manual.yml => manual-build.yml} (100%) diff --git a/.github/workflows/build-manual.yml b/.github/workflows/manual-build.yml similarity index 100% rename from .github/workflows/build-manual.yml rename to .github/workflows/manual-build.yml diff --git a/build.sh b/build.sh index 74ea48e..8c81a85 100755 --- a/build.sh +++ b/build.sh @@ -11,6 +11,6 @@ then docker build -f src/docker/${tag}/Dockerfile -t jkaninda/nginx-php-fpm:$tag . else echo 'Build latest' - docker build -f src/docker/8.2/Dockerfile -t jkaninda/nginx-php-fpm:$tag . + docker build -f src/docker/8.3/Dockerfile -t jkaninda/nginx-php-fpm:$tag . fi diff --git a/src/docker/7.2/Dockerfile b/src/docker/7.2/Dockerfile index cfc4f62..66793a8 100644 --- a/src/docker/7.2/Dockerfile +++ b/src/docker/7.2/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -80,10 +82,12 @@ ENTRYPOINT ["entrypoint.sh"] -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR -EXPOSE 9000 80 +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ +EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/7.3/Dockerfile b/src/docker/7.3/Dockerfile index 1ade451..cc311eb 100644 --- a/src/docker/7.3/Dockerfile +++ b/src/docker/7.3/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -80,11 +82,12 @@ RUN ln -s /usr/local/bin/entrypoint.sh / ENTRYPOINT ["entrypoint.sh"] - -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR -EXPOSE 9000 80 +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ +EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/7.4/Dockerfile b/src/docker/7.4/Dockerfile index f1dd2f0..63973dd 100644 --- a/src/docker/7.4/Dockerfile +++ b/src/docker/7.4/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -80,10 +82,12 @@ ENTRYPOINT ["entrypoint.sh"] -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR -EXPOSE 9000 80 +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ +EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/8.0/Dockerfile b/src/docker/8.0/Dockerfile index d26ab35..bf46bde 100644 --- a/src/docker/8.0/Dockerfile +++ b/src/docker/8.0/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -91,11 +93,12 @@ RUN ln -s /usr/local/bin/entrypoint.sh / ENTRYPOINT ["entrypoint.sh"] - -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR -EXPOSE 9000 80 +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ +EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/8.1/Dockerfile b/src/docker/8.1/Dockerfile index 1ec3559..f1012c7 100644 --- a/src/docker/8.1/Dockerfile +++ b/src/docker/8.1/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -91,13 +93,13 @@ RUN ln -s /usr/local/bin/entrypoint.sh / ENTRYPOINT ["entrypoint.sh"] - - -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/8.2/Dockerfile b/src/docker/8.2/Dockerfile index 32926f3..c1c978e 100644 --- a/src/docker/8.2/Dockerfile +++ b/src/docker/8.2/Dockerfile @@ -5,8 +5,10 @@ ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -93,11 +95,13 @@ ENTRYPOINT ["entrypoint.sh"] -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/docker/8.3/Dockerfile b/src/docker/8.3/Dockerfile index 7c4692c..87bad94 100644 --- a/src/docker/8.3/Dockerfile +++ b/src/docker/8.3/Dockerfile @@ -1,12 +1,14 @@ -FROM php:8.3.0-fpm +FROM php:8.3.1-fpm ARG WORKDIR=/var/www/html ENV DOCUMENT_ROOT=${WORKDIR} ENV LARAVEL_PROCS_NUMBER=1 ENV DOMAIN=_ ENV CLIENT_MAX_BODY_SIZE=15M ENV NODE_VERSION=17.x -ARG HOST_UID=1000 -ENV USER=www-data +ARG GROUP_ID=1000 +ARG USER_ID=1000 +ENV USER_NAME=www-data +ARG GROUP_NAME=www-data # Install system dependencies RUN apt-get update && apt-get install -y \ git \ @@ -93,11 +95,14 @@ ENTRYPOINT ["entrypoint.sh"] -RUN usermod -u ${HOST_UID} www-data -RUN groupmod -g ${HOST_UID} www-data - -RUN chmod -R 755 $WORKDIR -RUN chown -R www-data:www-data $WORKDIR +RUN usermod -u ${USER_ID} ${USER_NAME} +RUN groupmod -g ${USER_ID} ${GROUP_NAME} +RUN chown -R ${USER_NAME}:${GROUP_NAME} /var/www && \ + chown -R ${USER_NAME}:${GROUP_NAME} /var/log/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/supervisor/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} $PHP_INI_DIR/conf.d/ && \ + chown -R ${USER_NAME}:${GROUP_NAME} /etc/nginx/sites-available/ +#USER ${USER_NAME} EXPOSE 80 CMD [ "entrypoint" ] diff --git a/src/entrypoint.sh b/src/entrypoint.sh index 7d9317f..b915a32 100644 --- a/src/entrypoint.sh +++ b/src/entrypoint.sh @@ -1,32 +1,41 @@ #!/bin/sh -Red='\033[0;31m' # Red -Green='\033[0;32m' # Green + echo "" echo "***********************************************************" echo " Starting NGINX PHP-FPM Docker Container " echo "***********************************************************" set -e - +set -e +info() { + { set +x; } 2> /dev/null + echo '[INFO] ' "$@" +} +warning() { + { set +x; } 2> /dev/null + echo '[WARNING] ' "$@" +} +fatal() { + { set +x; } 2> /dev/null + echo '[ERROR] ' "$@" >&2 + exit 1 +} ## Check if the artisan file exists if [ -f /var/www/html/artisan ]; then - echo "${Green} artisan file found, creating laravel supervisor config" + info "Artisan file found, creating laravel supervisor config" # Set DocumentRoot to the Laravel project directory export DOCUMENT_ROOT=/var/www/html/public ##Create Laravel Scheduler process TASK=/etc/supervisor/conf.d/laravel-worker.conf touch $TASK cat > "$TASK" <