From b9ed718178c7c3563db567ab0c6e447ced75b0c3 Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Wed, 31 May 2023 12:33:26 +0530 Subject: [PATCH 01/12] Upgraded to php 8.2 and alpine 3.18 --- Dockerfile | 45 ++++++++++--------- rootfs/etc/{php7 => php82}/conf.d/.gitkeep | 0 rootfs/etc/{php7 => php82}/php-fpm.conf | 4 +- rootfs/etc/{php7 => php82}/php-fpm.d/www.conf | 4 +- rootfs/etc/{php7 => php82}/php.ini | 18 ++++---- rootfs/etc/supervisord.conf | 4 +- 6 files changed, 38 insertions(+), 37 deletions(-) rename rootfs/etc/{php7 => php82}/conf.d/.gitkeep (100%) rename rootfs/etc/{php7 => php82}/php-fpm.conf (98%) rename rootfs/etc/{php7 => php82}/php-fpm.d/www.conf (99%) rename rootfs/etc/{php7 => php82}/php.ini (99%) diff --git a/Dockerfile b/Dockerfile index 88b4416..73e2b6e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ -FROM alpine:3.8 +FROM alpine:3.18 MAINTAINER Rakshit Menpara -ENV composer_hash 48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5 -ENV DOCKERIZE_VERSION v0.6.1 +ENV DOCKERIZE_VERSION v0.7.0 RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz @@ -12,17 +11,17 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI # Install OS Dependencies RUN set -ex \ && apk add --no-cache --virtual .build-deps \ - gmp-dev tar \ - && apk add --no-cache --virtual .run-deps \ + autoconf automake build-base python3 gmp-dev \ curl \ - nodejs nodejs-npm \ + nodejs npm \ + tar \ + && apk add --no-cache --virtual .run-deps \ # PHP and extensions - php7 php7-apcu php7-bcmath php7-dom php7-ctype php7-curl php7-exif php7-fileinfo \ - php7-fpm php7-gd php7-gmp php7-iconv php7-intl php7-json php7-mbstring php7-mcrypt \ - php7-mysqlnd php7-mysqli php7-opcache php7-openssl php7-pcntl php7-pdo php7-pdo_mysql \ - php7-phar php7-posix php7-session php7-simplexml php7-sockets php7-sqlite3 php7-tidy \ - php7-tokenizer php7-xml php7-xmlwriter php7-zip php7-zlib php7-redis php7-soap \ - php7-pdo_pgsql php7-xmlreader \ + php82 php82-bcmath php82-ctype php82-curl php82-dom php82-exif php82-fileinfo \ + php82-fpm php82-gd php82-gmp php82-iconv php82-intl php82-mbstring \ + php82-mysqlnd php82-mysqli php82-opcache php82-openssl php82-pcntl php82-pecl-apcu php82-pdo php82-pdo_mysql \ + php82-phar php82-posix php82-session php82-simplexml php82-sockets php82-sqlite3 php82-tidy \ + php82-tokenizer php82-xml php82-xmlreader php82-xmlwriter php82-zip php82-pecl-redis php82-soap php82-sodium php82-pdo_sqlite php82-pdo_pgsql php82-pgsql \ # Other dependencies mariadb-client sudo \ # Miscellaneous packages @@ -38,10 +37,11 @@ RUN set -ex \ && rm -Rf /var/www/* \ && rm -Rf /etc/nginx/nginx.conf \ # Composer - && php7 -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/cb19f2aa3aeaa2006c0cd69a7ef011eb31463067/web/installer', 'composer-setup.php');" \ - && php7 -r "if (hash_file('SHA384', 'composer-setup.php') === '${composer_hash}') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ - && php7 composer-setup.php --install-dir=/usr/bin --filename=composer \ - && php7 -r "unlink('composer-setup.php');" \ + && wget https://composer.github.io/installer.sig -O - -q | tr -d '\n' > installer.sig \ + && php82 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php82 -r "if (hash_file('SHA384', 'composer-setup.php') === file_get_contents('installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ + && php82 composer-setup.php --install-dir=/usr/bin --filename=composer \ + && php82 -r "unlink('composer-setup.php'); unlink('installer.sig');" \ # Cleanup && apk del .build-deps @@ -52,10 +52,11 @@ RUN set -ex \ ADD rootfs / RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf && \ - ln -s /etc/php7/php.ini /etc/php7/conf.d/php.ini && \ + ln -s /etc/php82/php.ini /etc/php82/conf.d/php.ini && \ + ln -s /usr/bin/php82 /usr/bin/php && \ chown -R nginx:nginx /var/www && \ mkdir -p /var/www/storage/logs/ && \ - touch /var/www/storage/logs/laravel.log /var/log/nginx/error.log /var/log/php7/error.log + touch /var/www/storage/logs/laravel.log /var/log/nginx/error.log /var/log/php82/error.log ################## CONFIGURATION ENDS ################## @@ -64,12 +65,12 @@ EXPOSE 443 80 WORKDIR /var/www ENTRYPOINT ["dockerize", \ - "-template", "/etc/php7/php.ini:/etc/php7/php.ini", \ - "-template", "/etc/php7/php-fpm.conf:/etc/php7/php-fpm.conf", \ - "-template", "/etc/php7/php-fpm.d:/etc/php7/php-fpm.d", \ + "-template", "/etc/php82/php.ini:/etc/php82/php.ini", \ + "-template", "/etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf", \ + "-template", "/etc/php82/php-fpm.d:/etc/php82/php-fpm.d", \ "-stdout", "/var/www/storage/logs/laravel.log", \ "-stdout", "/var/log/nginx/error.log", \ - "-stdout", "/var/log/php7/error.log", \ + "-stdout", "/var/log/php82/error.log", \ "-poll"] CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"] diff --git a/rootfs/etc/php7/conf.d/.gitkeep b/rootfs/etc/php82/conf.d/.gitkeep similarity index 100% rename from rootfs/etc/php7/conf.d/.gitkeep rename to rootfs/etc/php82/conf.d/.gitkeep diff --git a/rootfs/etc/php7/php-fpm.conf b/rootfs/etc/php82/php-fpm.conf similarity index 98% rename from rootfs/etc/php7/php-fpm.conf rename to rootfs/etc/php82/php-fpm.conf index b4632fe..8f2796f 100644 --- a/rootfs/etc/php7/php-fpm.conf +++ b/rootfs/etc/php82/php-fpm.conf @@ -21,7 +21,7 @@ ; into a local file. ; Note: the default prefix is /var ; Default Value: log/php7/error.log -error_log = /var/log/php7/error.log +error_log = /var/log/php82/error.log ; syslog_facility is used to specify what type of program is logging the ; message. This lets syslogd specify that messages from different facilities @@ -122,6 +122,6 @@ daemonize = no ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set (-p argument) ; - /usr otherwise -include=/etc/php7/php-fpm.d/*.conf +include=/etc/php82/php-fpm.d/*.conf php_flag[display_errors] = {{ default .Env.PHP_DISPLAY_ERRORS "off" }} diff --git a/rootfs/etc/php7/php-fpm.d/www.conf b/rootfs/etc/php82/php-fpm.d/www.conf similarity index 99% rename from rootfs/etc/php7/php-fpm.d/www.conf rename to rootfs/etc/php82/php-fpm.d/www.conf index 749de33..e36c167 100644 --- a/rootfs/etc/php7/php-fpm.d/www.conf +++ b/rootfs/etc/php82/php-fpm.d/www.conf @@ -314,7 +314,7 @@ pm.max_requests = 200 ; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php7/$pool.slow.log +slowlog = /var/log/php82/$pool.slow.log ; The timeout for serving a single request after which a PHP backtrace will be ; dumped to the 'slowlog' file. A value of '0s' means 'off'. @@ -408,6 +408,6 @@ clear_env = no ; specified at startup with the -d argument ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com php_flag[display_errors] = On -php_admin_value[error_log] = /var/log/php7/$pool.error.log +php_admin_value[error_log] = /var/log/php82/$pool.error.log php_admin_flag[log_errors] = On ;php_admin_value[memory_limit] = 32M diff --git a/rootfs/etc/php7/php.ini b/rootfs/etc/php82/php.ini similarity index 99% rename from rootfs/etc/php7/php.ini rename to rootfs/etc/php82/php.ini index cc645b8..8810dab 100644 --- a/rootfs/etc/php7/php.ini +++ b/rootfs/etc/php82/php.ini @@ -1779,23 +1779,23 @@ ldap.max_links = -1 [opcache] ; Determines if Zend OPCache is enabled -;opcache.enable=1 +opcache.enable=1 ; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 +opcache.enable_cli=1 ; The OPcache shared memory storage size. -;opcache.memory_consumption=128 +opcache.memory_consumption=128 ; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 +opcache.interned_strings_buffer=16 ; The maximum number of keys (scripts) in the OPcache hash table. ; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 +opcache.max_accelerated_files=10000 ; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 +opcache.max_wasted_percentage=10 ; When this directive is enabled, the OPcache appends the current working ; directory to the script key, thus eliminating possible collisions between @@ -1805,12 +1805,12 @@ ldap.max_links = -1 ; When disabled, you must reset the OPcache manually or restart the ; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 +opcache.validate_timestamps=0 ; How often (in seconds) to check file timestamps for changes to the shared ; memory storage allocation. ("1" means validate once per second, but only ; once per request. "0" means always validate) -;opcache.revalidate_freq=2 +opcache.revalidate_freq=0 ; Enables or disables file search in include_path optimization ;opcache.revalidate_path=0 @@ -1821,7 +1821,7 @@ ldap.max_links = -1 ; If enabled, a fast shutdown sequence is used for the accelerated code ; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 +opcache.fast_shutdown=1 ; Allow file existence override (file_exists, etc.) performance feature. ;opcache.enable_file_override=0 diff --git a/rootfs/etc/supervisord.conf b/rootfs/etc/supervisord.conf index dc53ca1..c96a9ba 100644 --- a/rootfs/etc/supervisord.conf +++ b/rootfs/etc/supervisord.conf @@ -23,8 +23,8 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///dev/shm/supervisor.sock ; use a unix:// URL for a unix socket -[program:php-fpm7] -command = /usr/sbin/php-fpm7 --nodaemonize --fpm-config /etc/php7/php-fpm.conf +[program:php-fpm82] +command = /usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf autostart=true autorestart=true priority=5 From f773026acff52851ba9709d237e2dbc0ab9971d1 Mon Sep 17 00:00:00 2001 From: khushal mer Date: Wed, 31 May 2023 19:13:06 +0530 Subject: [PATCH 02/12] feat: added CI to build and push docker image #3 --- .github/workflows/build.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..31dc2b2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,31 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - php82 + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Short SHA + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + + - name: Build and Push Docker Image + uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: improwised/php-base:8.2-${{ steps.vars.outputs.sha_short }} From b08eb9b4a546fcf2c5b3e9aeafcd4682d44b46d2 Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Wed, 7 Jun 2023 16:23:48 +0530 Subject: [PATCH 03/12] Added setuid in supervisor --- Dockerfile | 2 +- rootfs/etc/supervisord.conf | 9 +++++++++ rootfs/etc/usermod/setuid.sh | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 rootfs/etc/usermod/setuid.sh diff --git a/Dockerfile b/Dockerfile index 73e2b6e..646aeae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,7 @@ RUN set -ex \ php82-phar php82-posix php82-session php82-simplexml php82-sockets php82-sqlite3 php82-tidy \ php82-tokenizer php82-xml php82-xmlreader php82-xmlwriter php82-zip php82-pecl-redis php82-soap php82-sodium php82-pdo_sqlite php82-pdo_pgsql php82-pgsql \ # Other dependencies - mariadb-client sudo \ + mariadb-client sudo shadow \ # Miscellaneous packages bash ca-certificates dialog git libjpeg libpng-dev openssh-client supervisor vim wget \ # Nginx diff --git a/rootfs/etc/supervisord.conf b/rootfs/etc/supervisord.conf index c96a9ba..37e49ea 100644 --- a/rootfs/etc/supervisord.conf +++ b/rootfs/etc/supervisord.conf @@ -23,6 +23,15 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///dev/shm/supervisor.sock ; use a unix:// URL for a unix socket +[program:setuid] +command = /etc/usermod/setuid.sh +autostart=true +autorestart=false +priority=1 +exitcodes=0 +startretries=1 +; stdout_logfile=/dev/stderr + [program:php-fpm82] command = /usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf autostart=true diff --git a/rootfs/etc/usermod/setuid.sh b/rootfs/etc/usermod/setuid.sh new file mode 100755 index 0000000..8da8b73 --- /dev/null +++ b/rootfs/etc/usermod/setuid.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +echo "User Id $UID, Group id $GID" +usermod -u "$UID" nginx && groupmod -g "$GID" nginx \ No newline at end of file From ec988ac7ae6d69f9e1d840952462bc90af606a89 Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Thu, 22 Jun 2023 20:00:50 +0530 Subject: [PATCH 04/12] Added yarn and xdebug --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 646aeae..63587e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM alpine:3.18 MAINTAINER Rakshit Menpara -ENV DOCKERIZE_VERSION v0.7.0 +ENV DOCKERIZE_VERSION v0.6.1 RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz @@ -13,15 +13,15 @@ RUN set -ex \ && apk add --no-cache --virtual .build-deps \ autoconf automake build-base python3 gmp-dev \ curl \ - nodejs npm \ tar \ && apk add --no-cache --virtual .run-deps \ + nodejs yarn \ # PHP and extensions php82 php82-bcmath php82-ctype php82-curl php82-dom php82-exif php82-fileinfo \ php82-fpm php82-gd php82-gmp php82-iconv php82-intl php82-mbstring \ php82-mysqlnd php82-mysqli php82-opcache php82-openssl php82-pcntl php82-pecl-apcu php82-pdo php82-pdo_mysql \ php82-phar php82-posix php82-session php82-simplexml php82-sockets php82-sqlite3 php82-tidy \ - php82-tokenizer php82-xml php82-xmlreader php82-xmlwriter php82-zip php82-pecl-redis php82-soap php82-sodium php82-pdo_sqlite php82-pdo_pgsql php82-pgsql \ + php82-tokenizer php82-xml php82-xmlreader php82-xmlwriter php82-zip php82-pecl-xdebug php82-pecl-redis php82-soap php82-sodium php82-pdo_sqlite php82-pdo_pgsql php82-pgsql \ # Other dependencies mariadb-client sudo shadow \ # Miscellaneous packages From 02b0b28845b97f6444b017470022a6cdd3e9deef Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Sat, 24 Jun 2023 10:09:37 +0530 Subject: [PATCH 05/12] Used npm instead of yarn --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 63587e2..b5cfd15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ RUN set -ex \ curl \ tar \ && apk add --no-cache --virtual .run-deps \ - nodejs yarn \ + nodejs npm \ # PHP and extensions php82 php82-bcmath php82-ctype php82-curl php82-dom php82-exif php82-fileinfo \ php82-fpm php82-gd php82-gmp php82-iconv php82-intl php82-mbstring \ From 4b3d6e18c792196f2f1c16255f77bb939dfb61d7 Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Wed, 7 Jun 2023 12:36:50 +0530 Subject: [PATCH 06/12] Used s6-overlay instead of supervisor * Added support of UID and GID override --- Dockerfile | 31 +++++++------ rootfs/etc/cont-init.d/init-adduser.sh | 5 +++ rootfs/etc/cont-init.d/init-nginx.sh | 7 +++ rootfs/etc/cont-init.d/init-php82-fpm.sh | 5 +++ rootfs/etc/services.d/nginx/run | 3 ++ rootfs/etc/services.d/php82-fpm/run | 3 ++ rootfs/etc/services.d/stdout/run | 3 ++ rootfs/etc/supervisord.conf | 55 ------------------------ 8 files changed, 45 insertions(+), 67 deletions(-) create mode 100755 rootfs/etc/cont-init.d/init-adduser.sh create mode 100755 rootfs/etc/cont-init.d/init-nginx.sh create mode 100755 rootfs/etc/cont-init.d/init-php82-fpm.sh create mode 100755 rootfs/etc/services.d/nginx/run create mode 100755 rootfs/etc/services.d/php82-fpm/run create mode 100755 rootfs/etc/services.d/stdout/run delete mode 100644 rootfs/etc/supervisord.conf diff --git a/Dockerfile b/Dockerfile index b5cfd15..94834fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,11 @@ FROM alpine:3.18 MAINTAINER Rakshit Menpara ENV DOCKERIZE_VERSION v0.6.1 +# set version for s6 overlay +ARG S6_OVERLAY_VERSION="3.1.5.0" +ARG S6_OVERLAY_ARCH="x86_64" + + RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz @@ -25,7 +30,7 @@ RUN set -ex \ # Other dependencies mariadb-client sudo shadow \ # Miscellaneous packages - bash ca-certificates dialog git libjpeg libpng-dev openssh-client supervisor vim wget \ + bash ca-certificates dialog git libjpeg libpng-dev openssh-client vim wget shadow \ # Nginx nginx \ # Create directories @@ -33,7 +38,6 @@ RUN set -ex \ && mkdir -p /run/nginx \ && mkdir -p /etc/nginx/sites-available \ && mkdir -p /etc/nginx/sites-enabled \ - && mkdir -p /var/log/supervisor \ && rm -Rf /var/www/* \ && rm -Rf /etc/nginx/nginx.conf \ # Composer @@ -47,6 +51,18 @@ RUN set -ex \ ################## INSTALLATION ENDS ################## +# add s6 overlay +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz + +# add s6 optional symlinks +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz + ################## CONFIGURATION STARTS ################## ADD rootfs / @@ -64,13 +80,4 @@ EXPOSE 443 80 WORKDIR /var/www -ENTRYPOINT ["dockerize", \ - "-template", "/etc/php82/php.ini:/etc/php82/php.ini", \ - "-template", "/etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf", \ - "-template", "/etc/php82/php-fpm.d:/etc/php82/php-fpm.d", \ - "-stdout", "/var/www/storage/logs/laravel.log", \ - "-stdout", "/var/log/nginx/error.log", \ - "-stdout", "/var/log/php82/error.log", \ - "-poll"] - -CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"] +ENTRYPOINT ["/init"] diff --git a/rootfs/etc/cont-init.d/init-adduser.sh b/rootfs/etc/cont-init.d/init-adduser.sh new file mode 100755 index 0000000..4f6db20 --- /dev/null +++ b/rootfs/etc/cont-init.d/init-adduser.sh @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +echo "User Id $UID, Group id $GID" +usermod -u "$UID" nginx && groupmod -g "$GID" nginx diff --git a/rootfs/etc/cont-init.d/init-nginx.sh b/rootfs/etc/cont-init.d/init-nginx.sh new file mode 100755 index 0000000..8a60f83 --- /dev/null +++ b/rootfs/etc/cont-init.d/init-nginx.sh @@ -0,0 +1,7 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# copy default config files if they don't exist +if [[ ! -f /etc/nginx/sites-enabled/default.conf ]]; then + cp /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf +fi \ No newline at end of file diff --git a/rootfs/etc/cont-init.d/init-php82-fpm.sh b/rootfs/etc/cont-init.d/init-php82-fpm.sh new file mode 100755 index 0000000..46f53b6 --- /dev/null +++ b/rootfs/etc/cont-init.d/init-php82-fpm.sh @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# add environment variable into files +dockerize -template /etc/php82/php.ini:/etc/php82/php.ini -template /etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf -template /etc/php82/php-fpm.d:/etc/php82/php-fpm.d \ No newline at end of file diff --git a/rootfs/etc/services.d/nginx/run b/rootfs/etc/services.d/nginx/run new file mode 100755 index 0000000..c7b2dad --- /dev/null +++ b/rootfs/etc/services.d/nginx/run @@ -0,0 +1,3 @@ +#!/usr/bin/execlineb -P + +/usr/sbin/nginx -g "daemon off;" \ No newline at end of file diff --git a/rootfs/etc/services.d/php82-fpm/run b/rootfs/etc/services.d/php82-fpm/run new file mode 100755 index 0000000..1adcb78 --- /dev/null +++ b/rootfs/etc/services.d/php82-fpm/run @@ -0,0 +1,3 @@ +#!/usr/bin/execlineb -P + +/usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf \ No newline at end of file diff --git a/rootfs/etc/services.d/stdout/run b/rootfs/etc/services.d/stdout/run new file mode 100755 index 0000000..3319182 --- /dev/null +++ b/rootfs/etc/services.d/stdout/run @@ -0,0 +1,3 @@ +#!/usr/bin/execlineb -P + +dockerize -stdout /var/www/storage/logs/laravel.log -stdout /var/log/nginx/error.log -stdout /var/log/php82/error.log -poll \ No newline at end of file diff --git a/rootfs/etc/supervisord.conf b/rootfs/etc/supervisord.conf deleted file mode 100644 index 37e49ea..0000000 --- a/rootfs/etc/supervisord.conf +++ /dev/null @@ -1,55 +0,0 @@ -[unix_http_server] -file=/dev/shm/supervisor.sock ; (the path to the socket file) - -[supervisord] -logfile=/dev/null -logfile_maxbytes=0 -;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) -;logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) -logfile_backups=10 ; (num of main logfile rotation backups;default 10) -loglevel=warn ; (log level;default info; others: debug,warn,trace) -pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) -nodaemon=true ; (start in foreground if true;default false) -minfds=1024 ; (min. avail startup file descriptors;default 1024) -minprocs=200 ; (min. avail process descriptors;default 200) -user=root ; - -; the below section must remain in the config file for RPC -; (supervisorctl/web interface) to work, additional interfaces may be -; added by defining them in separate rpcinterface: sections -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[supervisorctl] -serverurl=unix:///dev/shm/supervisor.sock ; use a unix:// URL for a unix socket - -[program:setuid] -command = /etc/usermod/setuid.sh -autostart=true -autorestart=false -priority=1 -exitcodes=0 -startretries=1 -; stdout_logfile=/dev/stderr - -[program:php-fpm82] -command = /usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf -autostart=true -autorestart=true -priority=5 -;stdout_events_enabled=true -;stderr_events_enabled=true -;redirect_stderr=true -;stdout_logfile=/dev/stderr -;stdout_logfile_maxbytes=0 - -[program:nginx] -command=/usr/sbin/nginx -g "daemon off;" -autostart=true -autorestart=true -priority=10 -;stdout_events_enabled=true -;stderr_events_enabled=true -;redirect_stderr=true -;stdout_logfile=/dev/stderr -;stdout_logfile_maxbytes=0 From 41abad713687c6d88a237f15ee38fe346842f853 Mon Sep 17 00:00:00 2001 From: Munir Khakhi Date: Thu, 8 Jun 2023 18:13:00 +0530 Subject: [PATCH 07/12] Used v3 file sturcture for s6-overlay --- Dockerfile | 2 ++ rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base | 0 .../init-nginx.sh => s6-overlay/s6-rc.d/init-nginx/run} | 0 rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type | 1 + rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up | 1 + .../s6-rc.d/init-php82-fpm/dependencies.d/init-nginx | 0 .../s6-rc.d/init-php82-fpm/run} | 0 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type | 1 + rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up | 1 + .../s6-overlay/s6-rc.d/init-usermod/dependencies.d/init-nginx | 0 .../init-adduser.sh => s6-overlay/s6-rc.d/init-usermod/run} | 3 +++ rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type | 1 + rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up | 1 + .../etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-nginx | 0 .../s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm | 0 .../etc/{services.d/nginx => s6-overlay/s6-rc.d/svc-nginx}/run | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type | 1 + .../php82-fpm => s6-overlay/s6-rc.d/svc-php82-fpm}/run | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type | 1 + .../etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-nginx | 0 .../s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm | 0 .../{services.d/stdout => s6-overlay/s6-rc.d/svc-stdout}/run | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type | 1 + rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx | 0 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm | 0 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-usermod | 0 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx | 0 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm | 0 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-stdout | 0 29 files changed, 14 insertions(+) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base rename rootfs/etc/{cont-init.d/init-nginx.sh => s6-overlay/s6-rc.d/init-nginx/run} (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/init-nginx rename rootfs/etc/{cont-init.d/init-php82-fpm.sh => s6-overlay/s6-rc.d/init-php82-fpm/run} (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/init-nginx rename rootfs/etc/{cont-init.d/init-adduser.sh => s6-overlay/s6-rc.d/init-usermod/run} (81%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm rename rootfs/etc/{services.d/nginx => s6-overlay/s6-rc.d/svc-nginx}/run (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type rename rootfs/etc/{services.d/php82-fpm => s6-overlay/s6-rc.d/svc-php82-fpm}/run (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm rename rootfs/etc/{services.d/stdout => s6-overlay/s6-rc.d/svc-stdout}/run (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-usermod create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-stdout diff --git a/Dockerfile b/Dockerfile index 94834fb..d1b91a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,6 +71,8 @@ RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/defau ln -s /etc/php82/php.ini /etc/php82/conf.d/php.ini && \ ln -s /usr/bin/php82 /usr/bin/php && \ chown -R nginx:nginx /var/www && \ + chmod 755 /etc/s6-overlay/s6-rc.d/*/run && \ + chmod 755 /etc/s6-overlay/s6-rc.d/*/up && \ mkdir -p /var/www/storage/logs/ && \ touch /var/www/storage/logs/laravel.log /var/log/nginx/error.log /var/log/php82/error.log diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/cont-init.d/init-nginx.sh b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run similarity index 100% rename from rootfs/etc/cont-init.d/init-nginx.sh rename to rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up new file mode 100644 index 0000000..60ba159 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-nginx/run \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/cont-init.d/init-php82-fpm.sh b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run similarity index 100% rename from rootfs/etc/cont-init.d/init-php82-fpm.sh rename to rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up new file mode 100644 index 0000000..d22a155 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-php82-fpm/run \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/cont-init.d/init-adduser.sh b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/run similarity index 81% rename from rootfs/etc/cont-init.d/init-adduser.sh rename to rootfs/etc/s6-overlay/s6-rc.d/init-usermod/run index 4f6db20..27ed729 100755 --- a/rootfs/etc/cont-init.d/init-adduser.sh +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/run @@ -1,5 +1,8 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +UID=${UID:-911} +GID=${GID:-911} + echo "User Id $UID, Group id $GID" usermod -u "$UID" nginx && groupmod -g "$GID" nginx diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up new file mode 100644 index 0000000..4bfd1a7 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-usermod/run \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/services.d/nginx/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run similarity index 100% rename from rootfs/etc/services.d/nginx/run rename to rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/rootfs/etc/services.d/php82-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run similarity index 100% rename from rootfs/etc/services.d/php82-fpm/run rename to rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-nginx b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/services.d/stdout/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run similarity index 100% rename from rootfs/etc/services.d/stdout/run rename to rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-usermod b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-usermod new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-stdout b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-stdout new file mode 100644 index 0000000..e69de29 From fbc6b8a0c06ad6faacad674561dcf1bf2515a0a0 Mon Sep 17 00:00:00 2001 From: HUSSAIN GANDHI <69318875+HussainTechSavvy@users.noreply.github.com> Date: Wed, 20 Dec 2023 12:06:06 +0000 Subject: [PATCH 08/12] fix: CI and s6-overlay-bug #7 (#8) * optimized ci * changed runner * reverted runner and added docker buildx support * added cache support * fix: changed tag * fix: changed tag * fix: changed shebang in certain files * fix: changed branch names in ci * removed temp branch name from CI * added new line at end of files * enabled docker push * added env in Dockerfile --- .editorconfig | 20 ++++++++ .github/workflows/build.yml | 50 +++++++++++-------- Dockerfile | 5 +- README.md | 2 +- rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run | 2 +- rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type | 2 +- rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up | 2 +- .../etc/s6-overlay/s6-rc.d/init-php82-fpm/run | 2 +- .../s6-overlay/s6-rc.d/init-php82-fpm/type | 2 +- .../etc/s6-overlay/s6-rc.d/init-php82-fpm/up | 2 +- .../etc/s6-overlay/s6-rc.d/init-usermod/type | 2 +- rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up | 2 +- rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run | 4 +- rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type | 2 +- .../etc/s6-overlay/s6-rc.d/svc-php82-fpm/run | 4 +- .../etc/s6-overlay/s6-rc.d/svc-php82-fpm/type | 2 +- rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run | 4 +- rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type | 2 +- rootfs/etc/usermod/setuid.sh | 2 +- 19 files changed, 71 insertions(+), 42 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6082f3d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = true + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 31dc2b2..2e5d497 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,29 +3,37 @@ name: Build and Push Docker Image on: push: branches: - - php82 + - "7.4" + - "7.4-s6" + - "8.2" + - "8.2-s6" jobs: build-and-push: runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Login to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Get Short SHA - id: vars - run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: Build and Push Docker Image - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: improwised/php-base:8.2-${{ steps.vars.outputs.sha_short }} + - name: Checkout code + uses: actions/checkout@v4 + timeout-minutes: 5 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + timeout-minutes: 5 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ vars.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + timeout-minutes: 5 + - name: Create Tag + id: tag + run: echo "tag=${{ github.ref_name }}-$(git rev-parse --short HEAD)-$(date +%s)" >> $GITHUB_OUTPUT + timeout-minutes: 5 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: improwised/php-base:${{ steps.tag.outputs.tag }} + cache-from: type=gha + cache-to: type=gha,mode=max + timeout-minutes: 5 diff --git a/Dockerfile b/Dockerfile index d1b91a2..007c5ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,12 @@ FROM alpine:3.18 -MAINTAINER Rakshit Menpara ENV DOCKERIZE_VERSION v0.6.1 # set version for s6 overlay ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="x86_64" - +ENV UID=100 \ + GID=101 \ + FPM_LOG_LEVEL=warning RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ diff --git a/README.md b/README.md index 9ce0635..475c117 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Base container image for modern PHP applications built on top of Alpine Linux. T * Create a `Dockerfile` in root of your PHP project. ```dockerfile -FROM improwised/php-base:latest +FROM improwised/php-base: # Copy Composer COPY ./composer.* /var/www/ diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run index 8a60f83..51e8d55 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run @@ -4,4 +4,4 @@ # copy default config files if they don't exist if [[ ! -f /etc/nginx/sites-enabled/default.conf ]]; then cp /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf -fi \ No newline at end of file +fi diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type index 3d92b15..bdd22a1 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type @@ -1 +1 @@ -oneshot \ No newline at end of file +oneshot diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up index 60ba159..b3b5b49 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up @@ -1 +1 @@ -/etc/s6-overlay/s6-rc.d/init-nginx/run \ No newline at end of file +/etc/s6-overlay/s6-rc.d/init-nginx/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run index 46f53b6..31bc5e2 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run @@ -2,4 +2,4 @@ # shellcheck shell=bash # add environment variable into files -dockerize -template /etc/php82/php.ini:/etc/php82/php.ini -template /etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf -template /etc/php82/php-fpm.d:/etc/php82/php-fpm.d \ No newline at end of file +dockerize -template /etc/php82/php.ini:/etc/php82/php.ini -template /etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf -template /etc/php82/php-fpm.d:/etc/php82/php-fpm.d diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type index 3d92b15..bdd22a1 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type @@ -1 +1 @@ -oneshot \ No newline at end of file +oneshot diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up index d22a155..7a8fd41 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up @@ -1 +1 @@ -/etc/s6-overlay/s6-rc.d/init-php82-fpm/run \ No newline at end of file +/etc/s6-overlay/s6-rc.d/init-php82-fpm/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type index 3d92b15..bdd22a1 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/type @@ -1 +1 @@ -oneshot \ No newline at end of file +oneshot diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up index 4bfd1a7..5bff2e7 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/up @@ -1 +1 @@ -/etc/s6-overlay/s6-rc.d/init-usermod/run \ No newline at end of file +/etc/s6-overlay/s6-rc.d/init-usermod/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run index c7b2dad..69e7d1b 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/run @@ -1,3 +1,3 @@ -#!/usr/bin/execlineb -P +#!/usr/bin/with-contenv bash -/usr/sbin/nginx -g "daemon off;" \ No newline at end of file +/usr/sbin/nginx -g "daemon off;" diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type index 1780f9f..5883cff 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/type @@ -1 +1 @@ -longrun \ No newline at end of file +longrun diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run index 1adcb78..974f44c 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run @@ -1,3 +1,3 @@ -#!/usr/bin/execlineb -P +#!/usr/bin/with-contenv bash -/usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf \ No newline at end of file +/usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type index 1780f9f..5883cff 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type @@ -1 +1 @@ -longrun \ No newline at end of file +longrun diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run index 3319182..ff85a4a 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run @@ -1,3 +1,3 @@ -#!/usr/bin/execlineb -P +#!/usr/bin/with-contenv bash -dockerize -stdout /var/www/storage/logs/laravel.log -stdout /var/log/nginx/error.log -stdout /var/log/php82/error.log -poll \ No newline at end of file +dockerize -stdout /var/www/storage/logs/laravel.log -stdout /var/log/nginx/error.log -stdout /var/log/php82/error.log -poll diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type index 1780f9f..5883cff 100644 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/type @@ -1 +1 @@ -longrun \ No newline at end of file +longrun diff --git a/rootfs/etc/usermod/setuid.sh b/rootfs/etc/usermod/setuid.sh index 8da8b73..06e36b3 100755 --- a/rootfs/etc/usermod/setuid.sh +++ b/rootfs/etc/usermod/setuid.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash echo "User Id $UID, Group id $GID" -usermod -u "$UID" nginx && groupmod -g "$GID" nginx \ No newline at end of file +usermod -u "$UID" nginx && groupmod -g "$GID" nginx From 898c72885637645c6895a9fcd3df962c65c32ab4 Mon Sep 17 00:00:00 2001 From: aniketgohelimp Date: Wed, 24 Apr 2024 12:23:36 +0530 Subject: [PATCH 09/12] added Dependencies for process --- rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base | 0 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base | 0 .../s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base | 0 .../s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx | 0 .../s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm | 0 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm new file mode 100644 index 0000000..e69de29 From 3a55dd94ab43926780b50df5c1fab429d821fd04 Mon Sep 17 00:00:00 2001 From: aniketgohelimp Date: Wed, 24 Apr 2024 15:39:25 +0530 Subject: [PATCH 10/12] removed base from dependency --- rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base | 0 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base | 0 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base delete mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base delete mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base delete mode 100644 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/base deleted file mode 100644 index e69de29..0000000 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/init-usermod/dependencies.d/base deleted file mode 100644 index e69de29..0000000 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/base deleted file mode 100644 index e69de29..0000000 diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/base deleted file mode 100644 index e69de29..0000000 From cb49509ce6a073e7d201c8c0daac6200e2d4c90e Mon Sep 17 00:00:00 2001 From: Annavar satish Date: Thu, 9 May 2024 19:43:49 +0530 Subject: [PATCH 11/12] feat: Update php to 8.3 --- .github/workflows/build.yml | 1 + Dockerfile | 32 ++++++++++--------- rootfs/etc/{php82 => php83}/conf.d/.gitkeep | 0 rootfs/etc/{php82 => php83}/php-fpm.conf | 4 +-- .../etc/{php82 => php83}/php-fpm.d/www.conf | 4 +-- rootfs/etc/{php82 => php83}/php.ini | 0 .../etc/s6-overlay/s6-rc.d/init-php82-fpm/run | 5 --- .../etc/s6-overlay/s6-rc.d/init-php82-fpm/up | 1 - .../dependencies.d/init-nginx | 0 .../etc/s6-overlay/s6-rc.d/init-php83-fpm/run | 5 +++ .../{init-php82-fpm => init-php83-fpm}/type | 0 .../etc/s6-overlay/s6-rc.d/init-php83-fpm/up | 1 + .../{init-php82-fpm => init-php83-fpm} | 0 .../{svc-php82-fpm => svc-php83-fpm} | 0 .../etc/s6-overlay/s6-rc.d/svc-php82-fpm/run | 3 -- .../dependencies.d/init-nginx | 0 .../dependencies.d/init-php83-fpm} | 0 .../etc/s6-overlay/s6-rc.d/svc-php83-fpm/run | 3 ++ .../{svc-php82-fpm => svc-php83-fpm}/type | 0 .../{svc-php82-fpm => svc-php83-fpm} | 0 rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run | 2 +- .../{init-php82-fpm => init-php83-fpm} | 0 .../{svc-php82-fpm => svc-php83-fpm} | 0 23 files changed, 32 insertions(+), 29 deletions(-) rename rootfs/etc/{php82 => php83}/conf.d/.gitkeep (100%) rename rootfs/etc/{php82 => php83}/php-fpm.conf (98%) rename rootfs/etc/{php82 => php83}/php-fpm.d/www.conf (99%) rename rootfs/etc/{php82 => php83}/php.ini (100%) delete mode 100755 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run delete mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up rename rootfs/etc/s6-overlay/s6-rc.d/{init-php82-fpm => init-php83-fpm}/dependencies.d/init-nginx (100%) create mode 100755 rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/run rename rootfs/etc/s6-overlay/s6-rc.d/{init-php82-fpm => init-php83-fpm}/type (100%) create mode 100644 rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/up rename rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/{init-php82-fpm => init-php83-fpm} (100%) rename rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/{svc-php82-fpm => svc-php83-fpm} (100%) delete mode 100755 rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run rename rootfs/etc/s6-overlay/s6-rc.d/{svc-php82-fpm => svc-php83-fpm}/dependencies.d/init-nginx (100%) rename rootfs/etc/s6-overlay/s6-rc.d/{svc-php82-fpm/dependencies.d/init-php82-fpm => svc-php83-fpm/dependencies.d/init-php83-fpm} (100%) create mode 100755 rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/run rename rootfs/etc/s6-overlay/s6-rc.d/{svc-php82-fpm => svc-php83-fpm}/type (100%) rename rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/{svc-php82-fpm => svc-php83-fpm} (100%) rename rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/{init-php82-fpm => init-php83-fpm} (100%) rename rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/{svc-php82-fpm => svc-php83-fpm} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2e5d497..fef3cc5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,6 +7,7 @@ on: - "7.4-s6" - "8.2" - "8.2-s6" + - "8.3-s6" jobs: build-and-push: diff --git a/Dockerfile b/Dockerfile index 007c5ee..217b2ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.18 +FROM alpine:edge ENV DOCKERIZE_VERSION v0.6.1 # set version for s6 overlay @@ -20,14 +20,15 @@ RUN set -ex \ autoconf automake build-base python3 gmp-dev \ curl \ tar \ - && apk add --no-cache --virtual .run-deps \ - nodejs npm \ + && apk add --no-cache --virtual .run-deps \ + nodejs npm libavif \ + && apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/community add \ # PHP and extensions - php82 php82-bcmath php82-ctype php82-curl php82-dom php82-exif php82-fileinfo \ - php82-fpm php82-gd php82-gmp php82-iconv php82-intl php82-mbstring \ - php82-mysqlnd php82-mysqli php82-opcache php82-openssl php82-pcntl php82-pecl-apcu php82-pdo php82-pdo_mysql \ - php82-phar php82-posix php82-session php82-simplexml php82-sockets php82-sqlite3 php82-tidy \ - php82-tokenizer php82-xml php82-xmlreader php82-xmlwriter php82-zip php82-pecl-xdebug php82-pecl-redis php82-soap php82-sodium php82-pdo_sqlite php82-pdo_pgsql php82-pgsql \ + php83 php83-bcmath php83-ctype php83-curl php83-dom php83-exif php83-fileinfo \ + php83-fpm php83-gd php83-gmp php83-iconv php83-intl php83-mbstring \ + php83-mysqlnd php83-mysqli php83-opcache php83-openssl php83-pcntl php83-pecl-apcu php83-pdo php83-pdo_mysql \ + php83-phar php83-posix php83-session php83-simplexml php83-sockets php83-sqlite3 php83-tidy \ + php83-tokenizer php83-xml php83-xmlreader php83-xmlwriter php83-zip php83-pecl-xdebug php83-pecl-redis php83-soap php83-sodium php83-pdo_sqlite php83-pdo_pgsql php83-pgsql \ # Other dependencies mariadb-client sudo shadow \ # Miscellaneous packages @@ -43,10 +44,10 @@ RUN set -ex \ && rm -Rf /etc/nginx/nginx.conf \ # Composer && wget https://composer.github.io/installer.sig -O - -q | tr -d '\n' > installer.sig \ - && php82 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ - && php82 -r "if (hash_file('SHA384', 'composer-setup.php') === file_get_contents('installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ - && php82 composer-setup.php --install-dir=/usr/bin --filename=composer \ - && php82 -r "unlink('composer-setup.php'); unlink('installer.sig');" \ + && php83 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php83 -r "if (hash_file('SHA384', 'composer-setup.php') === file_get_contents('installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ + && php83 composer-setup.php --install-dir=/usr/bin --filename=composer \ + && php83 -r "unlink('composer-setup.php'); unlink('installer.sig');" \ # Cleanup && apk del .build-deps @@ -69,13 +70,14 @@ RUN tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz ADD rootfs / RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf && \ - ln -s /etc/php82/php.ini /etc/php82/conf.d/php.ini && \ - ln -s /usr/bin/php82 /usr/bin/php && \ + ln -s /etc/php83/php.ini /etc/php83/conf.d/php.ini && \ + rm -rf /usr/bin/php && \ + ln -s /usr/bin/php83 /usr/bin/php && \ chown -R nginx:nginx /var/www && \ chmod 755 /etc/s6-overlay/s6-rc.d/*/run && \ chmod 755 /etc/s6-overlay/s6-rc.d/*/up && \ mkdir -p /var/www/storage/logs/ && \ - touch /var/www/storage/logs/laravel.log /var/log/nginx/error.log /var/log/php82/error.log + touch /var/www/storage/logs/laravel.log /var/log/nginx/error.log /var/log/php83/error.log ################## CONFIGURATION ENDS ################## diff --git a/rootfs/etc/php82/conf.d/.gitkeep b/rootfs/etc/php83/conf.d/.gitkeep similarity index 100% rename from rootfs/etc/php82/conf.d/.gitkeep rename to rootfs/etc/php83/conf.d/.gitkeep diff --git a/rootfs/etc/php82/php-fpm.conf b/rootfs/etc/php83/php-fpm.conf similarity index 98% rename from rootfs/etc/php82/php-fpm.conf rename to rootfs/etc/php83/php-fpm.conf index 8f2796f..292d0fe 100644 --- a/rootfs/etc/php82/php-fpm.conf +++ b/rootfs/etc/php83/php-fpm.conf @@ -21,7 +21,7 @@ ; into a local file. ; Note: the default prefix is /var ; Default Value: log/php7/error.log -error_log = /var/log/php82/error.log +error_log = /var/log/php83/error.log ; syslog_facility is used to specify what type of program is logging the ; message. This lets syslogd specify that messages from different facilities @@ -122,6 +122,6 @@ daemonize = no ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set (-p argument) ; - /usr otherwise -include=/etc/php82/php-fpm.d/*.conf +include=/etc/php83/php-fpm.d/*.conf php_flag[display_errors] = {{ default .Env.PHP_DISPLAY_ERRORS "off" }} diff --git a/rootfs/etc/php82/php-fpm.d/www.conf b/rootfs/etc/php83/php-fpm.d/www.conf similarity index 99% rename from rootfs/etc/php82/php-fpm.d/www.conf rename to rootfs/etc/php83/php-fpm.d/www.conf index e36c167..81b3559 100644 --- a/rootfs/etc/php82/php-fpm.d/www.conf +++ b/rootfs/etc/php83/php-fpm.d/www.conf @@ -314,7 +314,7 @@ pm.max_requests = 200 ; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/php82/$pool.slow.log +slowlog = /var/log/php83/$pool.slow.log ; The timeout for serving a single request after which a PHP backtrace will be ; dumped to the 'slowlog' file. A value of '0s' means 'off'. @@ -408,6 +408,6 @@ clear_env = no ; specified at startup with the -d argument ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com php_flag[display_errors] = On -php_admin_value[error_log] = /var/log/php82/$pool.error.log +php_admin_value[error_log] = /var/log/php83/$pool.error.log php_admin_flag[log_errors] = On ;php_admin_value[memory_limit] = 32M diff --git a/rootfs/etc/php82/php.ini b/rootfs/etc/php83/php.ini similarity index 100% rename from rootfs/etc/php82/php.ini rename to rootfs/etc/php83/php.ini diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run deleted file mode 100755 index 31bc5e2..0000000 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -# add environment variable into files -dockerize -template /etc/php82/php.ini:/etc/php82/php.ini -template /etc/php82/php-fpm.conf:/etc/php82/php-fpm.conf -template /etc/php82/php-fpm.d:/etc/php82/php-fpm.d diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up b/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up deleted file mode 100644 index 7a8fd41..0000000 --- a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-php82-fpm/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/dependencies.d/init-nginx similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/dependencies.d/init-nginx rename to rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/dependencies.d/init-nginx diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/run new file mode 100755 index 0000000..e75fd49 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# add environment variable into files +dockerize -template /etc/php83/php.ini:/etc/php83/php.ini -template /etc/php83/php-fpm.conf:/etc/php83/php-fpm.conf -template /etc/php83/php-fpm.d:/etc/php83/php-fpm.d diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/type similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/init-php82-fpm/type rename to rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/type diff --git a/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/up b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/up new file mode 100644 index 0000000..577b0dc --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/init-php83-fpm/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-php83-fpm/run diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/init-php83-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/svc-nginx/dependencies.d/svc-php83-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run deleted file mode 100755 index 974f44c..0000000 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/with-contenv bash - -/usr/sbin/php-fpm82 --nodaemonize --fpm-config /etc/php82/php-fpm.conf diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx b/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/dependencies.d/init-nginx similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-nginx rename to rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/dependencies.d/init-nginx diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/dependencies.d/init-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/dependencies.d/init-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/dependencies.d/init-php83-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/run new file mode 100755 index 0000000..5cba518 --- /dev/null +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/run @@ -0,0 +1,3 @@ +#!/usr/bin/with-contenv bash + +/usr/sbin/php-fpm83 --nodaemonize --fpm-config /etc/php83/php-fpm.conf diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type b/rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/type similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-php82-fpm/type rename to rootfs/etc/s6-overlay/s6-rc.d/svc-php83-fpm/type diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/dependencies.d/svc-php83-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run index ff85a4a..15c8727 100755 --- a/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run +++ b/rootfs/etc/s6-overlay/s6-rc.d/svc-stdout/run @@ -1,3 +1,3 @@ #!/usr/bin/with-contenv bash -dockerize -stdout /var/www/storage/logs/laravel.log -stdout /var/log/nginx/error.log -stdout /var/log/php82/error.log -poll +dockerize -stdout /var/www/storage/logs/laravel.log -stdout /var/log/nginx/error.log -stdout /var/log/php83/error.log -poll diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php83-fpm diff --git a/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm b/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php83-fpm similarity index 100% rename from rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php82-fpm rename to rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/svc-php83-fpm From 0300e8e2f6a0440ade4fe3d382e8c6d6f3fa6047 Mon Sep 17 00:00:00 2001 From: Annavar satish Date: Wed, 15 May 2024 11:44:56 +0530 Subject: [PATCH 12/12] remove duplicate shadow package. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 217b2ec..68d1e00 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN set -ex \ php83-phar php83-posix php83-session php83-simplexml php83-sockets php83-sqlite3 php83-tidy \ php83-tokenizer php83-xml php83-xmlreader php83-xmlwriter php83-zip php83-pecl-xdebug php83-pecl-redis php83-soap php83-sodium php83-pdo_sqlite php83-pdo_pgsql php83-pgsql \ # Other dependencies - mariadb-client sudo shadow \ + mariadb-client sudo \ # Miscellaneous packages bash ca-certificates dialog git libjpeg libpng-dev openssh-client vim wget shadow \ # Nginx