0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2025-07-17 21:28:05 +02:00

Compare commits

...

5 commits

Author SHA1 Message Date
Stephan Brunner
10a0a33edf
Merge 4df45e7ac3 into 614be28550 2025-04-19 18:29:33 +00:00
Kaloyan Nikolov
614be28550
Updated examples (#2405)
* Updated examples

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Lock examples to PostgreSQL 16

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Pin postgresql to 16 in Readme example

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Update .examples/docker-compose/insecure/mariadb/apache/compose.yaml

Co-authored-by: J0WI <J0WI@users.noreply.github.com>
Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Update .examples/docker-compose/insecure/postgres/apache/compose.yaml

Co-authored-by: J0WI <J0WI@users.noreply.github.com>
Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Update .examples/docker-compose/insecure/mariadb/fpm/compose.yaml

Co-authored-by: J0WI <J0WI@users.noreply.github.com>
Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Moved some comments on new lines.

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Moved another comment to new line

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Unified across files / updated README file.

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

* Use canonical links to external services.

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>

---------

Signed-off-by: Kaloyan Nikolov <tzerber@gmail.com>
Co-authored-by: J0WI <J0WI@users.noreply.github.com>
2025-04-18 15:42:58 +00:00
Stephan Brunner
4df45e7ac3 Replace tab vs spaces to align code style
Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
2025-03-02 09:55:34 +01:00
Stephan Brunner
d6b4877b36 Add ability to force reinitialization by putting a marker file in the tmp folder
We have a custom image where we'd like to recopy all of nextcloud's
source code again when we update some internal thing without a change in
Nextcloud's version. The newly added pre-initialization hook can be used
to determine this and force a rerun.

Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
2025-03-02 09:55:34 +01:00
Stephan Brunner
5bbbde3734 Add pre-initialization hook
Allow execution of scripts even before the need to install or update
Nextcloud is determined. Useful when needing to have additional update
condition checks.

Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
2025-03-02 09:55:34 +01:00
38 changed files with 335 additions and 65 deletions

View file

@ -1,6 +1,9 @@
services: services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
restart: always restart: always
volumes: volumes:
@ -12,6 +15,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always

View file

@ -1,6 +1,9 @@
services: services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
restart: always restart: always
volumes: volumes:
@ -12,6 +15,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -31,14 +36,18 @@ services:
- db - db
- redis - redis
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web: web:
build: ./web image: nginx:alpine-slim
restart: always restart: always
ports: ports:
- 127.0.0.1:8080:80 - 127.0.0.1:8080:80
volumes: volumes:
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./web/nginx.conf:/etc/nginx/nginx.conf:ro
# NOTE: The `volumes` included below should match those of the `app` container (unless you know what you're doing)
- nextcloud:/var/www/html:z,ro - nextcloud:/var/www/html:z,ro
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
depends_on: depends_on:
- app - app

View file

@ -1,3 +0,0 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

View file

@ -1,5 +1,8 @@
services: services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db: db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine image: postgres:alpine
restart: always restart: always
volumes: volumes:
@ -7,6 +10,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always

View file

@ -1,5 +1,8 @@
services: services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db: db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine image: postgres:alpine
restart: always restart: always
volumes: volumes:
@ -7,6 +10,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -26,14 +31,18 @@ services:
- db - db
- redis - redis
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web: web:
build: ./web image: nginx:alpine-slim
restart: always restart: always
ports: ports:
- 127.0.0.1:8080:80 - 127.0.0.1:8080:80
volumes: volumes:
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./web/nginx.conf:/etc/nginx/nginx.conf:ro
# NOTE: The `volumes` included below should match those of the `app` container (unless you know what you're doing)
- nextcloud:/var/www/html:z,ro - nextcloud:/var/www/html:z,ro
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
depends_on: depends_on:
- app - app

View file

@ -1,3 +0,0 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

View file

@ -1,6 +1,9 @@
services: services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
restart: always restart: always
volumes: volumes:
@ -12,6 +15,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -33,9 +38,6 @@ services:
depends_on: depends_on:
- db - db
- redis - redis
# Added proxy container dependency below.
# It is unclear on when or why it happens, but sometimes NC manages to start before the proxy
# and it breaks for whatever weird reason resulting in the need of manual proxy container restart.
- proxy - proxy
networks: networks:
- proxy-tier - proxy-tier
@ -52,6 +54,9 @@ services:
- db - db
- redis - redis
# Note: Nginx-proxy is an external service. You can find more information about the configuration here:
# Warning: Do not use :latest tags of nginx-proxy unless absolutely sure about the consequences.
# https://hub.docker.com/r/nginxproxy/nginx-proxy
proxy: proxy:
build: ./proxy build: ./proxy
restart: always restart: always
@ -69,6 +74,8 @@ services:
networks: networks:
- proxy-tier - proxy-tier
# Note: Letsencrypt companion is an external service. You can find more information about the configuration here:
# https://hub.docker.com/r/nginxproxy/acme-companion
letsencrypt-companion: letsencrypt-companion:
image: nginxproxy/acme-companion image: nginxproxy/acme-companion
restart: always restart: always
@ -85,7 +92,7 @@ services:
depends_on: depends_on:
- proxy - proxy
# self signed # self signed,outdated
# omgwtfssl: # omgwtfssl:
# image: paulczar/omgwtfssl # image: paulczar/omgwtfssl
# restart: "no" # restart: "no"

View file

@ -1,3 +1,3 @@
FROM nginxproxy/nginx-proxy:alpine FROM nginxproxy/nginx-proxy:1.7-alpine
COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf

View file

@ -1,6 +1,9 @@
services: services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
restart: always restart: always
volumes: volumes:
@ -12,6 +15,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -32,12 +37,16 @@ services:
- redis - redis
- proxy - proxy
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web: web:
build: ./web image: nginx:alpine-slim
restart: always restart: always
volumes: volumes:
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./web/nginx.conf:/etc/nginx/nginx.conf:ro
# NOTE: The `volumes` included below should match those of the `app` container (unless you know what you're doing)
- nextcloud:/var/www/html:z,ro - nextcloud:/var/www/html:z,ro
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
environment: environment:
- VIRTUAL_HOST= - VIRTUAL_HOST=
- LETSENCRYPT_HOST= - LETSENCRYPT_HOST=
@ -59,6 +68,9 @@ services:
- db - db
- redis - redis
# Note: Nginx-proxy is an external service. You can find more information about the configuration here:
# Warning: Do not use :latest tags of nginx-proxy unless absolutely sure about the consequences.
# https://hub.docker.com/r/nginxproxy/nginx-proxy
proxy: proxy:
build: ./proxy build: ./proxy
restart: always restart: always
@ -75,6 +87,8 @@ services:
networks: networks:
- proxy-tier - proxy-tier
# Note: Letsencrypt companion is an external service. You can find more information about the configuration here:
# https://hub.docker.com/r/nginxproxy/acme-companion
letsencrypt-companion: letsencrypt-companion:
image: nginxproxy/acme-companion image: nginxproxy/acme-companion
restart: always restart: always
@ -91,7 +105,7 @@ services:
depends_on: depends_on:
- proxy - proxy
# self signed # self signed, outdated.
# omgwtfssl: # omgwtfssl:
# image: paulczar/omgwtfssl # image: paulczar/omgwtfssl
# restart: "no" # restart: "no"

View file

@ -1,3 +1,3 @@
FROM nginxproxy/nginx-proxy:alpine FROM nginxproxy/nginx-proxy:1.7-alpine
COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf

View file

@ -1,3 +0,0 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

View file

@ -1,5 +1,8 @@
services: services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db: db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine image: postgres:alpine
restart: always restart: always
volumes: volumes:
@ -7,6 +10,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -44,6 +49,9 @@ services:
- db - db
- redis - redis
# Note: Nginx-proxy is an external service. You can find more information about the configuration here:
# Warning: Do not use :latest tags of nginx-proxy unless absolutely sure about the consequences.
# https://hub.docker.com/r/nginxproxy/nginx-proxy
proxy: proxy:
build: ./proxy build: ./proxy
restart: always restart: always
@ -60,6 +68,8 @@ services:
networks: networks:
- proxy-tier - proxy-tier
# Note: Letsencrypt companion is an external service. You can find more information about the configuration here:
# https://hub.docker.com/r/nginxproxy/acme-companion
letsencrypt-companion: letsencrypt-companion:
image: nginxproxy/acme-companion image: nginxproxy/acme-companion
restart: always restart: always
@ -74,7 +84,7 @@ services:
depends_on: depends_on:
- proxy - proxy
# self signed # self signed, outdated
# omgwtfssl: # omgwtfssl:
# image: paulczar/omgwtfssl # image: paulczar/omgwtfssl
# restart: "no" # restart: "no"

View file

@ -1,3 +1,3 @@
FROM nginxproxy/nginx-proxy:alpine FROM nginxproxy/nginx-proxy:1.7-alpine
COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf

View file

@ -1,7 +1,8 @@
version: '3'
services: services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db: db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine image: postgres:alpine
restart: always restart: always
volumes: volumes:
@ -9,6 +10,8 @@ services:
env_file: env_file:
- db.env - db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -29,12 +32,16 @@ services:
- redis - redis
- proxy - proxy
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web: web:
build: ./web image: nginx:alpine-slim
restart: always restart: always
volumes: volumes:
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./web/nginx.conf:/etc/nginx/nginx.conf:ro
# NOTE: The `volumes` included below should match those of the `app` container (unless you know what you're doing)
- nextcloud:/var/www/html:z,ro - nextcloud:/var/www/html:z,ro
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
environment: environment:
- VIRTUAL_HOST= - VIRTUAL_HOST=
- LETSENCRYPT_HOST= - LETSENCRYPT_HOST=
@ -56,6 +63,9 @@ services:
- db - db
- redis - redis
# Note: Nginx-proxy is an external service. You can find more information about the configuration here:
# Warning: Do not use :latest tags of nginx-proxy unless absolutely sure about the consequences.
# https://hub.docker.com/r/nginxproxy/nginx-proxy
proxy: proxy:
build: ./proxy build: ./proxy
restart: always restart: always
@ -72,6 +82,8 @@ services:
networks: networks:
- proxy-tier - proxy-tier
# Note: Letsencrypt companion is an external service. You can find more information about the configuration here:
# https://hub.docker.com/r/nginxproxy/acme-companion
letsencrypt-companion: letsencrypt-companion:
image: nginxproxy/acme-companion image: nginxproxy/acme-companion
restart: always restart: always
@ -88,7 +100,7 @@ services:
depends_on: depends_on:
- proxy - proxy
# self signed # self signed, outdated
# omgwtfssl: # omgwtfssl:
# image: paulczar/omgwtfssl # image: paulczar/omgwtfssl
# restart: "no" # restart: "no"

View file

@ -1,3 +1,3 @@
FROM nginxproxy/nginx-proxy:alpine FROM nginxproxy/nginx-proxy:1.7-alpine
COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf

View file

@ -1,3 +0,0 @@
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi

View file

@ -118,7 +118,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -123,7 +123,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\ \
mkdir /var/www/data; \ mkdir /var/www/data; \
mkdir -p /docker-entrypoint-hooks.d/pre-installation \ mkdir -p /docker-entrypoint-hooks.d/pre-initialization \
/docker-entrypoint-hooks.d/pre-installation \
/docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/post-installation \
/docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \

View file

@ -82,7 +82,7 @@ Database:
```console ```console
$ docker run -d \ $ docker run -d \
-v db:/var/lib/mysql \ -v db:/var/lib/mysql \
mariadb:10.11 mariadb:lts
``` ```
### Additional volumes ### Additional volumes
@ -362,8 +362,9 @@ As long as you have not modified any of the provided config files in `/var/www/h
## Auto configuration via hook folders ## Auto configuration via hook folders
There are 5 hooks There are 6 hooks
- `pre-initialization` Executed before the need to update or install Nextcloud is determined
- `pre-installation` Executed before the Nextcloud is installed/initiated - `pre-installation` Executed before the Nextcloud is installed/initiated
- `post-installation` Executed after the Nextcloud is installed/initiated - `post-installation` Executed after the Nextcloud is installed/initiated
- `pre-upgrade` Executed before the Nextcloud is upgraded - `pre-upgrade` Executed before the Nextcloud is upgraded
@ -383,6 +384,7 @@ To use the hooks triggered by the `entrypoint` script, either
image: nextcloud:stable image: nextcloud:stable
volumes: volumes:
- ./app-hooks/pre-initialization:/docker-entrypoint-hooks.d/pre-initialization
- ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation - ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation
- ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation - ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation
- ./app-hooks/pre-upgrade:/docker-entrypoint-hooks.d/pre-upgrade - ./app-hooks/pre-upgrade:/docker-entrypoint-hooks.d/pre-upgrade
@ -391,6 +393,16 @@ To use the hooks triggered by the `entrypoint` script, either
... ...
``` ```
## Forcing an upgrade run
Sometimes you need to force an explicit upgrade run even when the bundled Nextcloud version did not change.
An example would be when you have custom apps bundled and you want to update those.
To do this, you can simply create a file `/tmp/nextcloud-force-initialization` before the need for an upgrade is determined.
The content is irrelevant.
You can either create this file before starting the container, or you can use the `pre-initialization` hook to create it.
After the update has successfully run, the file is removed automatically.
# Running this image with `docker compose` # Running this image with `docker compose`
The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for.
@ -403,8 +415,11 @@ Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` varia
```yaml ```yaml
services: services:
# Note: MariaDB is external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
restart: always restart: always
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
volumes: volumes:
@ -415,6 +430,8 @@ services:
- MYSQL_DATABASE=nextcloud - MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud - MYSQL_USER=nextcloud
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -451,8 +468,11 @@ Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` varia
```yaml ```yaml
services: services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
db: db:
image: mariadb:10.11 # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: mariadb:lts
restart: always restart: always
command: --transaction-isolation=READ-COMMITTED command: --transaction-isolation=READ-COMMITTED
volumes: volumes:
@ -463,6 +483,8 @@ services:
- MYSQL_DATABASE=nextcloud - MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud - MYSQL_USER=nextcloud
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
@ -481,15 +503,18 @@ services:
- MYSQL_USER=nextcloud - MYSQL_USER=nextcloud
- MYSQL_HOST=db - MYSQL_HOST=db
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web: web:
image: nginx image: nginx:alpine-slim
restart: always restart: always
ports: ports:
- 8080:80 - 8080:80
depends_on: depends_on:
- app - app
volumes: volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro # https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from: volumes_from:
- app - app
@ -514,8 +539,11 @@ Example:
```yaml ```yaml
services: services:
# Note: PostgreSQL is external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db: db:
image: postgres # Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine
restart: always restart: always
volumes: volumes:
- db:/var/lib/postgresql/data - db:/var/lib/postgresql/data
@ -527,6 +555,8 @@ services:
- postgres_db - postgres_db
- postgres_password - postgres_password
- postgres_user - postgres_user
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always

View file

@ -156,6 +156,8 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
flock 9 flock 9
fi fi
run_path pre-initialization
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016 # shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1 exit 1
fi fi
need_initialization=false
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
need_initialization=true
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
echo Found /tmp/nextcloud-force-initialization, forcing initialization
need_initialization=true
fi
if [ "true" = "$need_initialization" ]; then
echo "Initializing nextcloud $image_version ..." echo "Initializing nextcloud $image_version ..."
if [ "$installed_version" != "0.0.0.0" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then if [ "${image_version%%.*}" -gt "$((${installed_version%%.*} + 1))" ]; then
@ -263,7 +276,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi fi
run_path post-installation run_path post-installation
fi fi
fi fi
# not enough specified to do a fully automated installation # not enough specified to do a fully automated installation
if [ "$install" = false ]; then if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade run_path post-upgrade
fi fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished" echo "Initializing finished"
fi fi