diff --git a/Dockerfile b/Dockerfile index 3cad721..24f2349 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,22 @@ 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-mysqlnd \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + 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 && \ @@ -56,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-tmp && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index af97fb0..1b5d8f7 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,22 @@ 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-mysqlnd \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + 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 && \ @@ -56,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-tmp && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index eaf7a8f..74760ac 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,22 @@ 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-mysqlnd \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-phar \ + 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 && \ @@ -56,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-tmp && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/README.md b/README.md index f7adb9d..e0e9ae3 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 +* **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 1db8a23..3ab3d19 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -104,6 +104,7 @@ app_setup_block: | # changelog changelogs: + - { 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." } 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 96% rename from root/etc/cont-init.d/50-config rename to root/etc/s6-overlay/s6-rc.d/init-bookstack-config/run index cb2f3ee..a4da96b --- a/root/etc/cont-init.d/50-config +++ 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 - chown -R abc:abc /app/www -fi - # create directory structure mkdir -p \ /config/www/{uploads,files,images,themes} @@ -145,8 +139,9 @@ if [ -z "${CI_RUN+x}" ]; then php /app/www/artisan migrate --force fi -# set permissions -chown -R abc:abc \ +# permissions +lsiown -R abc:abc \ + /app/www/storage \ /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/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 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