From ebeadd336faefe328860e0ae6d537cb7b0a46a34 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Thu, 19 Jan 2023 20:18:45 -0600 Subject: [PATCH 1/6] Rebase to alpine 3.17 with php8.1 --- Dockerfile | 37 ++++++++++--------- Dockerfile.aarch64 | 37 ++++++++++--------- Dockerfile.armhf | 37 ++++++++++--------- README.md | 1 + readme-vars.yml | 1 + .../dependencies.d/init-nginx-end | 0 .../s6-rc.d/init-bookstack-config/run} | 6 +-- .../s6-rc.d/init-bookstack-config/type | 1 + .../s6-rc.d/init-bookstack-config/up | 1 + .../dependencies.d/init-services | 0 .../s6-rc.d/svc-memcached}/run | 0 .../etc/s6-overlay/s6-rc.d/svc-memcached/type | 1 + .../user/contents.d/init-bookstack-config | 0 .../s6-rc.d/user/contents.d/svc-memcached | 0 14 files changed, 65 insertions(+), 57 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-bookstack-config/dependencies.d/init-nginx-end rename root/etc/{cont-init.d/50-config => s6-overlay/s6-rc.d/init-bookstack-config/run} (98%) mode change 100644 => 100755 create mode 100644 root/etc/s6-overlay/s6-rc.d/init-bookstack-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-bookstack-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-memcached/dependencies.d/init-services rename root/etc/{services.d/memcached => s6-overlay/s6-rc.d/svc-memcached}/run (100%) mode change 100644 => 100755 create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-memcached/type create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-bookstack-config create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-memcached diff --git a/Dockerfile b/Dockerfile index 3cad721..dbc3ee8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17 # set version label ARG BUILD_DATE @@ -18,29 +20,28 @@ RUN \ apk add --no-cache \ fontconfig \ memcached \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-gd \ - php8-ldap \ - php8-mbstring \ - php8-mysqlnd \ - php8-openssl \ - php8-pdo_mysql \ - php8-pecl-memcached \ - php8-phar \ - php8-simplexml \ - php8-tokenizer \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-gd \ + php81-ldap \ + php81-mbstring \ + php81-mysqlnd \ + php81-openssl \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + php81-simplexml \ + php81-tokenizer \ qt5-qtbase \ - tar \ ttf-freefont && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ - sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \ - grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \ - echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \ + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ + grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \ echo "**** fetch bookstack ****" && \ mkdir -p\ /app/www && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index af97fb0..ca91f52 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17 # set version label ARG BUILD_DATE @@ -18,29 +20,28 @@ RUN \ apk add --no-cache \ fontconfig \ memcached \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-gd \ - php8-ldap \ - php8-mbstring \ - php8-mysqlnd \ - php8-openssl \ - php8-pdo_mysql \ - php8-pecl-memcached \ - php8-phar \ - php8-simplexml \ - php8-tokenizer \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-gd \ + php81-ldap \ + php81-mbstring \ + php81-mysqlnd \ + php81-openssl \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + php81-simplexml \ + php81-tokenizer \ qt5-qtbase \ - tar \ ttf-freefont && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ - sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \ - grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \ - echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \ + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ + grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \ echo "**** fetch bookstack ****" && \ mkdir -p\ /app/www && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index eaf7a8f..ce376d8 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17 # set version label ARG BUILD_DATE @@ -18,29 +20,28 @@ RUN \ apk add --no-cache \ fontconfig \ memcached \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-gd \ - php8-ldap \ - php8-mbstring \ - php8-mysqlnd \ - php8-openssl \ - php8-pdo_mysql \ - php8-pecl-memcached \ - php8-phar \ - php8-simplexml \ - php8-tokenizer \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-gd \ + php81-ldap \ + php81-mbstring \ + php81-mysqlnd \ + php81-openssl \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + php81-simplexml \ + php81-tokenizer \ qt5-qtbase \ - tar \ ttf-freefont && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ - sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \ - grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \ - echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \ + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ + grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php81/php-fpm.conf && \ echo "**** fetch bookstack ****" && \ mkdir -p\ /app/www && \ diff --git a/README.md b/README.md index f7adb9d..94257dd 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **20.08.22:** - Rebase to alpine 3.17 with php8.1. * **16.01.23:** - Wrap `.env` values in quotes. * **05.01.23:** - Fix db password setting (sed escape `&`). * **21.12.22:** - Update db info in .env file when env vars are updated. diff --git a/readme-vars.yml b/readme-vars.yml index 1db8a23..6ae17d1 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -104,6 +104,7 @@ app_setup_block: | # changelog changelogs: + - { date: "20.08.22:", desc: "Rebase to alpine 3.17 with php8.1." } - { date: "16.01.23:", desc: "Wrap `.env` values in quotes." } - { date: "05.01.23:", desc: "Fix db password setting (sed escape `&`)." } - { date: "21.12.22:", desc: "Update db info in .env file when env vars are updated." } diff --git a/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/dependencies.d/init-nginx-end b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/dependencies.d/init-nginx-end new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/50-config b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run old mode 100644 new mode 100755 similarity index 98% rename from root/etc/cont-init.d/50-config rename to root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run index cb2f3ee..616f6fa --- a/root/etc/cont-init.d/50-config +++ b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run @@ -4,7 +4,7 @@ if [ -d /app/www-tmp ]; then echo "New container detected. Setting up app folder and fixing permissions." mv /app/www-tmp /app/www - chown -R abc:abc /app/www + lsiown -R abc:abc /app/www fi # create directory structure @@ -145,8 +145,8 @@ if [ -z "${CI_RUN+x}" ]; then php /app/www/artisan migrate --force fi -# set permissions -chown -R abc:abc \ +# permissions +lsiown -R abc:abc \ /config # set lockfile to avoid DB waits for this specific container diff --git a/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/type b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/up b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/up new file mode 100644 index 0000000..c9f39e1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-bookstack-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-memcached/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-memcached/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/services.d/memcached/run b/root/etc/s6-overlay/s6-rc.d/svc-memcached/run old mode 100644 new mode 100755 similarity index 100% rename from root/etc/services.d/memcached/run rename to root/etc/s6-overlay/s6-rc.d/svc-memcached/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-memcached/type b/root/etc/s6-overlay/s6-rc.d/svc-memcached/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-memcached/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-bookstack-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-bookstack-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-memcached b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-memcached new file mode 100644 index 0000000..e69de29 From 231349b8420eeb7341391e943b96043697461dfa Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Thu, 19 Jan 2023 20:39:21 -0600 Subject: [PATCH 2/6] Fix date --- README.md | 2 +- readme-vars.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94257dd..e0e9ae3 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions -* **20.08.22:** - Rebase to alpine 3.17 with php8.1. +* **19.01.23:** - Rebase to alpine 3.17 with php8.1. * **16.01.23:** - Wrap `.env` values in quotes. * **05.01.23:** - Fix db password setting (sed escape `&`). * **21.12.22:** - Update db info in .env file when env vars are updated. diff --git a/readme-vars.yml b/readme-vars.yml index 6ae17d1..3ab3d19 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -104,7 +104,7 @@ app_setup_block: | # changelog changelogs: - - { date: "20.08.22:", desc: "Rebase to alpine 3.17 with php8.1." } + - { date: "19.01.23:", desc: "Rebase to alpine 3.17 with php8.1." } - { date: "16.01.23:", desc: "Wrap `.env` values in quotes." } - { date: "05.01.23:", desc: "Fix db password setting (sed escape `&`)." } - { date: "21.12.22:", desc: "Update db info in .env file when env vars are updated." } From 1603fb13fcf14f0120b03b29dc13a45f0d5d69f5 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 20 Jan 2023 18:15:13 -0600 Subject: [PATCH 3/6] Remove base packages --- Dockerfile | 6 ------ Dockerfile.aarch64 | 6 ------ Dockerfile.armhf | 6 ------ 3 files changed, 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index dbc3ee8..6802742 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,19 +25,13 @@ RUN \ php81-dom \ php81-gd \ php81-ldap \ - php81-mbstring \ php81-mysqlnd \ - php81-openssl \ php81-pdo_mysql \ php81-pecl-memcached \ php81-phar \ - php81-simplexml \ php81-tokenizer \ qt5-qtbase \ ttf-freefont && \ - apk add --no-cache \ - --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ - wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ca91f52..ed69a01 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -25,19 +25,13 @@ RUN \ php81-dom \ php81-gd \ php81-ldap \ - php81-mbstring \ php81-mysqlnd \ - php81-openssl \ php81-pdo_mysql \ php81-pecl-memcached \ php81-phar \ - php81-simplexml \ php81-tokenizer \ qt5-qtbase \ ttf-freefont && \ - apk add --no-cache \ - --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ - wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index ce376d8..c0ded28 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -25,19 +25,13 @@ RUN \ php81-dom \ php81-gd \ php81-ldap \ - php81-mbstring \ php81-mysqlnd \ - php81-openssl \ php81-pdo_mysql \ php81-pecl-memcached \ php81-phar \ - php81-simplexml \ php81-tokenizer \ qt5-qtbase \ ttf-freefont && \ - apk add --no-cache \ - --repository=http://dl-cdn.alpinelinux.org/alpine/v3.14/community \ - wkhtmltopdf && \ echo "**** configure php-fpm to pass env vars ****" && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php81/php-fpm.d/www.conf && \ grep -qxF 'clear_env = no' /etc/php81/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php81/php-fpm.d/www.conf && \ From 288cb8d25be6c9f6a248a4b1b44254471f8fe3ba Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 20 Jan 2023 18:18:44 -0600 Subject: [PATCH 4/6] Remove -tmp logic --- Dockerfile | 2 +- Dockerfile.aarch64 | 2 +- Dockerfile.armhf | 2 +- root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run | 7 +------ 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6802742..1839d1b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,7 +52,7 @@ RUN \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www-tmp && \ + mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ed69a01..f8ca346 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -52,7 +52,7 @@ RUN \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www-tmp && \ + mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index c0ded28..9283445 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -52,7 +52,7 @@ RUN \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www-tmp && \ + mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run index 616f6fa..a4da96b 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run @@ -1,12 +1,6 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -if [ -d /app/www-tmp ]; then - echo "New container detected. Setting up app folder and fixing permissions." - mv /app/www-tmp /app/www - lsiown -R abc:abc /app/www -fi - # create directory structure mkdir -p \ /config/www/{uploads,files,images,themes} @@ -147,6 +141,7 @@ fi # permissions lsiown -R abc:abc \ + /app/www/storage \ /config # set lockfile to avoid DB waits for this specific container From 4b7807780be579f3eaffb0017784ab9c7f662e17 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 20 Jan 2023 18:51:08 -0600 Subject: [PATCH 5/6] Remove -tmp logic --- Dockerfile | 2 -- Dockerfile.aarch64 | 2 -- Dockerfile.armhf | 2 -- 3 files changed, 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1839d1b..24f2349 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,8 +51,6 @@ RUN \ /app/www/ --strip-components=1 && \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ - echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f8ca346..1b5d8f7 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -51,8 +51,6 @@ RUN \ /app/www/ --strip-components=1 && \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ - echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 9283445..74760ac 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -51,8 +51,6 @@ RUN \ /app/www/ --strip-components=1 && \ echo "**** install composer dependencies ****" && \ composer install -d /app/www/ && \ - echo "**** overlay-fs bug workaround ****" && \ - mv /app/www /app/www && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ From 0b903bdfefa4f8432ba3be5deeaf3a09b5517f1f Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 22 Jan 2023 14:48:04 -0600 Subject: [PATCH 6/6] Fix dependencies --- .../s6-rc.d/init-config-end/dependencies.d/init-bookstack-config | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-bookstack-config diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-bookstack-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-bookstack-config new file mode 100644 index 0000000..e69de29