diff --git a/Containers/apache/Dockerfile b/Containers/apache/Dockerfile index 39de29ed..d22bfc36 100644 --- a/Containers/apache/Dockerfile +++ b/Containers/apache/Dockerfile @@ -103,6 +103,7 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Apache and Caddy for Nextcloud AIO" \ org.opencontainers.image.description="Apache HTTP server with Caddy for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/borgbackup/Dockerfile b/Containers/borgbackup/Dockerfile index cdb7dadb..867be9d6 100644 --- a/Containers/borgbackup/Dockerfile +++ b/Containers/borgbackup/Dockerfile @@ -25,6 +25,7 @@ USER root LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Borgbackup for Nextcloud AIO" \ org.opencontainers.image.description="BorgBackup-based backup service for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile index 14e5fbf9..56d0eaf9 100644 --- a/Containers/clamav/Dockerfile +++ b/Containers/clamav/Dockerfile @@ -43,6 +43,7 @@ ENTRYPOINT ["/start.sh"] CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="ClamAV for Nextcloud AIO" \ org.opencontainers.image.description="ClamAV antivirus scanner for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/collabora-online/Dockerfile b/Containers/collabora-online/Dockerfile index 16c202e8..89f9ccbf 100644 --- a/Containers/collabora-online/Dockerfile +++ b/Containers/collabora-online/Dockerfile @@ -13,6 +13,7 @@ USER 1001 HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Collabora Online for Nextcloud AIO" \ org.opencontainers.image.description="Collabora Online document editor from upstream for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile index a7d1585f..8f019ce2 100644 --- a/Containers/collabora/Dockerfile +++ b/Containers/collabora/Dockerfile @@ -13,6 +13,7 @@ USER 1001 HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Collabora for Nextcloud AIO" \ org.opencontainers.image.description="Collabora CODE document editor for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile index 67138a1d..0946c832 100644 --- a/Containers/docker-socket-proxy/Dockerfile +++ b/Containers/docker-socket-proxy/Dockerfile @@ -20,6 +20,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Docker Socket Proxy for Nextcloud AIO" \ org.opencontainers.image.description="HAProxy-based Docker socket proxy for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/domaincheck/Dockerfile b/Containers/domaincheck/Dockerfile index 9c8abcfa..e0d542a5 100644 --- a/Containers/domaincheck/Dockerfile +++ b/Containers/domaincheck/Dockerfile @@ -19,6 +19,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1 LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Domain Check for Nextcloud AIO" \ org.opencontainers.image.description="Domain validation service for Nextcloud All-in-One setup" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/fulltextsearch/Dockerfile b/Containers/fulltextsearch/Dockerfile index 21e3eb23..cf7421b8 100644 --- a/Containers/fulltextsearch/Dockerfile +++ b/Containers/fulltextsearch/Dockerfile @@ -21,6 +21,7 @@ USER 1000:0 HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Full Text Search for Nextcloud AIO" \ org.opencontainers.image.description="Elasticsearch-based full-text search for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/imaginary/Dockerfile b/Containers/imaginary/Dockerfile index bb9d4557..35672484 100644 --- a/Containers/imaginary/Dockerfile +++ b/Containers/imaginary/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:latest FROM golang:1.26.3-alpine3.23 AS go -ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee +ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee RUN set -ex; \ apk upgrade --no-cache -a; \ @@ -45,6 +45,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Imaginary for Nextcloud AIO" \ org.opencontainers.image.description="High-performance image processing service for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/mastercontainer/Dockerfile b/Containers/mastercontainer/Dockerfile index 58758acd..dbf283c4 100644 --- a/Containers/mastercontainer/Dockerfile +++ b/Containers/mastercontainer/Dockerfile @@ -107,6 +107,7 @@ LABEL org.opencontainers.image.title="Nextcloud All-in-One Mastercontainer" \ org.opencontainers.image.vendor="Nextcloud" \ org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md" \ wud.watch="false" \ + dockhand.update="false" \ com.docker.compose.project="nextcloud-aio" # hadolint ignore=DL3002 diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile index 3ccb6394..0867d5d9 100644 --- a/Containers/nextcloud/Dockerfile +++ b/Containers/nextcloud/Dockerfile @@ -286,6 +286,7 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Nextcloud for Nextcloud AIO" \ org.opencontainers.image.description="Nextcloud server with all required PHP extensions for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/notify-push/Dockerfile b/Containers/notify-push/Dockerfile index 66116351..f8e11813 100644 --- a/Containers/notify-push/Dockerfile +++ b/Containers/notify-push/Dockerfile @@ -23,6 +23,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Notify Push for Nextcloud AIO" \ org.opencontainers.image.description="Nextcloud notify_push high-performance backend for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/onlyoffice/Dockerfile b/Containers/onlyoffice/Dockerfile index 0efd5bf9..3d56119b 100644 --- a/Containers/onlyoffice/Dockerfile +++ b/Containers/onlyoffice/Dockerfile @@ -9,6 +9,7 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="OnlyOffice for Nextcloud AIO" \ org.opencontainers.image.description="OnlyOffice Document Server for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/postgresql/Dockerfile b/Containers/postgresql/Dockerfile index 26463fcb..2e130a78 100644 --- a/Containers/postgresql/Dockerfile +++ b/Containers/postgresql/Dockerfile @@ -49,6 +49,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="PostgreSQL for Nextcloud AIO" \ org.opencontainers.image.description="PostgreSQL database for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/redis/Dockerfile b/Containers/redis/Dockerfile index e8919e14..1dfc61ec 100644 --- a/Containers/redis/Dockerfile +++ b/Containers/redis/Dockerfile @@ -23,6 +23,7 @@ ENTRYPOINT ["/start.sh"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Redis for Nextcloud AIO" \ org.opencontainers.image.description="Redis cache server for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/talk-recording/Dockerfile b/Containers/talk-recording/Dockerfile index 90f28dd0..2c176f72 100644 --- a/Containers/talk-recording/Dockerfile +++ b/Containers/talk-recording/Dockerfile @@ -67,6 +67,7 @@ CMD ["python", "-m", "nextcloud.talk.recording", "--config", "/conf/recording.co HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Talk Recording for Nextcloud AIO" \ org.opencontainers.image.description="Nextcloud Talk recording service for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile index 540ba9e2..67df222f 100644 --- a/Containers/talk/Dockerfile +++ b/Containers/talk/Dockerfile @@ -112,6 +112,7 @@ CMD ["supervisord", "-c", "/supervisord.conf"] HEALTHCHECK CMD /healthcheck.sh LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Talk for Nextcloud AIO" \ org.opencontainers.image.description="Nextcloud Talk with NATS, Janus, eturnal, and signaling server for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile index 5ce2f982..f894ae80 100644 --- a/Containers/watchtower/Dockerfile +++ b/Containers/watchtower/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:latest FROM golang:1.26.3-alpine3.23 AS go -ENV WATCHTOWER_COMMIT_HASH=652c89577076f6bc6f2af4465217589641216ee3 +ENV WATCHTOWER_COMMIT_HASH=652c89577076f6bc6f2af4465217589641216ee3 RUN set -ex; \ apk upgrade --no-cache -a; \ @@ -27,6 +27,7 @@ ENV AIO_LOG_LEVEL="warn" ENTRYPOINT ["/start.sh"] LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Watchtower for Nextcloud AIO" \ org.opencontainers.image.description="Watchtower auto-update service for Nextcloud All-in-One containers" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/Containers/whiteboard/Dockerfile b/Containers/whiteboard/Dockerfile index 72f4880e..15e1b43d 100644 --- a/Containers/whiteboard/Dockerfile +++ b/Containers/whiteboard/Dockerfile @@ -24,6 +24,7 @@ ENTRYPOINT ["/start.sh"] LABEL com.centurylinklabs.watchtower.enable="false" \ wud.watch="false" \ + dockhand.update="false" \ org.opencontainers.image.title="Whiteboard for Nextcloud AIO" \ org.opencontainers.image.description="Collaborative whiteboard service for Nextcloud All-in-One" \ org.opencontainers.image.url="https://github.com/nextcloud/all-in-one" \ diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php index ca6a4d72..966ce1e0 100644 --- a/php/src/Docker/DockerActionManager.php +++ b/php/src/Docker/DockerActionManager.php @@ -472,7 +472,7 @@ readonly class DockerActionManager { // To avoid problems with whitespace or dashes in option arguments we use a regular expression // that splits the string at every position where a whitespace is followed by '--o:'. // The leading whitespace is removed in the split but the following characters are not. - // Example: "--o:example_config1='some thing' --o:example_config2=something-else" -> ["--o:example_config1='some thing'", "--o:example_config2=something-else"] + // Example: "--o:example_config1='some thing' --o:example_config2=something-else" -> ["--o:example_config1='some thing'", "--o:example_config2=something-else"] $regEx = '/\s+(?=--o:)/'; $requestBody['Cmd'] = preg_split($regEx, rtrim($this->configurationManager->collaboraAdditionalOptions)); } @@ -483,9 +483,10 @@ readonly class DockerActionManager { } // All AIO-managed containers should not be updated externally via watchtower but gracefully by AIO's backup and update feature. - // Also DIUN should not send update notifications. See https://crazymax.dev/diun/providers/docker/#docker-labels + // Also DIUN should not send update notifications. See https://crazymax.dev/diun/providers/docker/#docker-labels + // Also Dockhand should not be auto updating the containers. See https://dockhand.pro/manual/#container-labels-behavior // Additionally set a default org.label-schema.vendor and com.docker.compose.project - $requestBody['Labels'] = ["com.centurylinklabs.watchtower.enable" => "false", "wud.watch" => "false", "diun.enable" => "false", "org.label-schema.vendor" => "Nextcloud", "com.docker.compose.project" => "nextcloud-aio"]; + $requestBody['Labels'] = ["com.centurylinklabs.watchtower.enable" => "false", "wud.watch" => "false", "diun.enable" => "false", "dockhand.update" => "false", "org.label-schema.vendor" => "Nextcloud", "com.docker.compose.project" => "nextcloud-aio"]; // Containers should have a fixed host name. See https://github.com/nextcloud/all-in-one/discussions/6589 $requestBody['Hostname'] = $container->identifier; @@ -785,7 +786,7 @@ readonly class DockerActionManager { ] )->getBody()->getContents(), true, - 512, + 512, JSON_THROW_ON_ERROR, );