diff --git a/.drone.yml b/.drone.yml index 22d4b22..0ac15a2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -41,7 +41,9 @@ steps: from_secret: DOCKERHUB_USERNAME password: from_secret: DOCKERHUB_PASSWORD - cache_from: "glenux/service-nextcloud:latest_${DRONE_BRANCH/\\//-}" + cache_from: + - "glenux/service-nextcloud:${DRONE_COMMIT_SHA:0:8}" + - "glenux/service-nextcloud:latest_${DRONE_BRANCH/\\//-}" repo: glenux/service-nextcloud tags: "latest_${DRONE_BRANCH/\\//-}" purge: false @@ -60,7 +62,9 @@ steps: from_secret: DOCKERHUB_USERNAME password: from_secret: DOCKERHUB_PASSWORD - cache_from: "glenux/service-nextcloud:latest_${DRONE_BRANCH/\\//-}" + cache_from: + - "glenux/service-nextcloud:${DRONE_COMMIT_SHA:0:8}" + - "glenux/service-nextcloud:latest_${DRONE_BRANCH/\\//-}" repo: glenux/service-nextcloud tags: latest purge: false diff --git a/Dockerfile b/Dockerfile index 0b1c552..59908e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -100,8 +100,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && mkdir /var/log/supervisord /var/run/supervisord COPY supervisord.conf /etc/supervisord.conf -COPY --chmod=755 ./postdeploy.sh /app/postdeploy.sh -COPY --chmod=755 ./postdeploy_hook.sh /docker-entrypoint-hooks.d/post-installation/postdeploy_hook.sh +# COPY --chmod=755 ./hooks/gx.post-installation.www.sh /app/gx.post-installation.www.sh +# COPY --chmod=755 ./hooks/gx.post-installation.root.sh /docker-entrypoint-hooks.d/post-installation/gx.post-installation.root.sh + +COPY --chmod=755 ./hooks/gx.before-starting.www.sh /docker-entrypoint-hooks.d/before-starting/gx.before-starting.www.sh ENV NEXTCLOUD_UPDATE=1 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..350737a --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ + +all: + +build: + docker compose build + +run: + docker compose up -d diff --git a/hooks/gx.before-starting.root.sh b/hooks/gx.before-starting.root.sh new file mode 100755 index 0000000..4e0a64d --- /dev/null +++ b/hooks/gx.before-starting.root.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -u +set -e + +echo "== Running before-starting hooks as $(id -un) user ==" +su -l -s /bin/sh www-data -c /app/gx.before-starting.www.sh diff --git a/postdeploy.sh b/hooks/gx.before-starting.www.sh similarity index 56% rename from postdeploy.sh rename to hooks/gx.before-starting.www.sh index 145f7b1..a1cc0da 100755 --- a/postdeploy.sh +++ b/hooks/gx.before-starting.www.sh @@ -3,26 +3,29 @@ set -u set -e +echo "== Running before-starting hooks as $(id -un) user ==" + +# wait for nextcloud to be initialized WORKDIR=/var/www/html counter=0 while [ ! -d "$WORKDIR" ] && [ "$counter" -lt 120 ]; do - echo "GYR:POSTDEPLOY:WAITING" + echo "GX:BEFORE-STARTING:WAITING" counter=$((counter+1)) sleep 1 done cd "$WORKDIR" || exit 1 -echo "GYR:POSTDEPLOY:START ($(pwd))" -find . -maxdepth 1 -echo "GYR:POSTDEPLOY:UPGRADE" +echo "GX:BEFORE-STARTING:START ($(pwd))" +# find . -maxdepth 1 +echo "GX:BEFORE-STARTING:UPGRADE" php -d memory_limit=-1 occ upgrade -echo "GYR:POSTDEPLOY:DB" +echo "GX:BEFORE-STARTING:DB" php -d memory_limit=-1 occ db:convert-filecache-bigint php -d memory_limit=-1 occ db:add-missing-indices -echo "GYR:POSTDEPLOY:HTACCESS" +echo "GX:BEFORE-STARTING:HTACCESS" php -d memory_limit=-1 occ maintenance:update:htaccess -echo "GYR:POSTDEPLOY:MAINTENANCE:OFF" +echo "GX:BEFORE-STARTING:MAINTENANCE:OFF" php -d memory_limit=-1 occ maintenance:mode --off php -d memory_limit=-1 occ maintenance:mode --off || true -echo "GYR:POSTDEPLOY:END" +echo "GX:BEFORE-STARTING:END" diff --git a/hooks/gx.post-installation.root.sh b/hooks/gx.post-installation.root.sh new file mode 100755 index 0000000..22d6b90 --- /dev/null +++ b/hooks/gx.post-installation.root.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -u +set -e + +echo "== Running post-installation hooks as $(id -un) user ==" +su -l -s /bin/sh www-data -c /app/gx.post-installation.www.sh + diff --git a/hooks/gx.post-installation.www.sh b/hooks/gx.post-installation.www.sh new file mode 100755 index 0000000..eac88a5 --- /dev/null +++ b/hooks/gx.post-installation.www.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +set -u +set -e + +echo "== Running post-installation hooks as $(id -un) user ==" + +# wait for nextcloud to be initialized +WORKDIR=/var/www/html +counter=0 +while [ ! -d "$WORKDIR" ] && [ "$counter" -lt 120 ]; do + echo "GX:POST-INSTALLATION:WAITING" + counter=$((counter+1)) + sleep 1 +done +cd "$WORKDIR" || exit 1 + +echo "GX:POST-INSTALLATION:START ($(pwd))" +# # find . -maxdepth 1 +# echo "GX:POST-INSTALLATION:UPGRADE" +# php -d memory_limit=-1 occ upgrade +# echo "GX:POST-INSTALLATION:DB" +# php -d memory_limit=-1 occ db:convert-filecache-bigint +# php -d memory_limit=-1 occ db:add-missing-indices +# echo "GX:POST-INSTALLATION:HTACCESS" +# php -d memory_limit=-1 occ maintenance:update:htaccess +# echo "GX:POST-INSTALLATION:MAINTENANCE:OFF" +# php -d memory_limit=-1 occ maintenance:mode --off +# php -d memory_limit=-1 occ maintenance:mode --off || true +echo "GX:POST-INSTALLATION:END" + diff --git a/postdeploy_hook.sh b/postdeploy_hook.sh deleted file mode 100755 index 226408b..0000000 --- a/postdeploy_hook.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -su -l -s /bin/sh www-data -c /app/postdeploy.sh -