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:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
restart: always
volumes:
@ -12,6 +15,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always

View file

@ -1,6 +1,9 @@
services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
restart: always
volumes:
@ -12,6 +15,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always
@ -31,14 +36,18 @@ services:
- db
- redis
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web:
build: ./web
image: nginx:alpine-slim
restart: always
ports:
- 127.0.0.1:8080:80
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
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
depends_on:
- app

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,9 @@
services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
restart: always
volumes:
@ -12,6 +15,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always
@ -33,9 +38,6 @@ services:
depends_on:
- db
- 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
networks:
- proxy-tier
@ -52,6 +54,9 @@ services:
- db
- 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:
build: ./proxy
restart: always
@ -69,6 +74,8 @@ services:
networks:
- 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:
image: nginxproxy/acme-companion
restart: always
@ -85,7 +92,7 @@ services:
depends_on:
- proxy
# self signed
# self signed,outdated
# omgwtfssl:
# image: paulczar/omgwtfssl
# 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

View file

@ -1,6 +1,9 @@
services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
restart: always
volumes:
@ -12,6 +15,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always
@ -32,12 +37,16 @@ services:
- redis
- proxy
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web:
build: ./web
image: nginx:alpine-slim
restart: always
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
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
environment:
- VIRTUAL_HOST=
- LETSENCRYPT_HOST=
@ -59,6 +68,9 @@ services:
- db
- 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:
build: ./proxy
restart: always
@ -75,6 +87,8 @@ services:
networks:
- 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:
image: nginxproxy/acme-companion
restart: always
@ -91,7 +105,7 @@ services:
depends_on:
- proxy
# self signed
# self signed, outdated.
# omgwtfssl:
# image: paulczar/omgwtfssl
# 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

View file

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

View file

@ -1,5 +1,8 @@
services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine
restart: always
volumes:
@ -7,6 +10,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always
@ -44,6 +49,9 @@ services:
- db
- 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:
build: ./proxy
restart: always
@ -60,6 +68,8 @@ services:
networks:
- 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:
image: nginxproxy/acme-companion
restart: always
@ -74,7 +84,7 @@ services:
depends_on:
- proxy
# self signed
# self signed, outdated
# omgwtfssl:
# image: paulczar/omgwtfssl
# 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

View file

@ -1,7 +1,8 @@
version: '3'
services:
# Note: PostgreSQL is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
db:
# Note: Check the recommend version here: https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html#server
image: postgres:alpine
restart: always
volumes:
@ -9,6 +10,8 @@ services:
env_file:
- db.env
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always
@ -29,12 +32,16 @@ services:
- redis
- proxy
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web:
build: ./web
image: nginx:alpine-slim
restart: always
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
# NOTE: The `volumes` included here should match those of the `app` container (unless you know what you're doing)
environment:
- VIRTUAL_HOST=
- LETSENCRYPT_HOST=
@ -56,6 +63,9 @@ services:
- db
- 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:
build: ./proxy
restart: always
@ -72,6 +82,8 @@ services:
networks:
- 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:
image: nginxproxy/acme-companion
restart: always
@ -88,7 +100,7 @@ services:
depends_on:
- proxy
# self signed
# self signed, outdated
# omgwtfssl:
# image: paulczar/omgwtfssl
# 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

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"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -119,7 +119,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -124,7 +124,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-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
fi
run_path pre-initialization
installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@ -169,7 +171,18 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
exit 1
fi
need_initialization=false
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 ..."
if [ "$installed_version" != "0.0.0.0" ]; 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
run_path post-installation
fi
fi
fi
# not enough specified to do a fully automated installation
if [ "$install" = false ]; then
@ -284,6 +297,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
run_path post-upgrade
fi
if [ -f /tmp/nextcloud-force-initialization ]; then
rm /tmp/nextcloud-force-initialization
fi
echo "Initializing finished"
fi

View file

@ -118,7 +118,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \

View file

@ -123,7 +123,8 @@ RUN { \
} > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \
\
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/pre-upgrade \
/docker-entrypoint-hooks.d/post-upgrade \

View file

@ -82,7 +82,7 @@ Database:
```console
$ docker run -d \
-v db:/var/lib/mysql \
mariadb:10.11
mariadb:lts
```
### 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
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
- `post-installation` Executed after the Nextcloud is installed/initiated
- `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
volumes:
- ./app-hooks/pre-initialization:/docker-entrypoint-hooks.d/pre-initialization
- ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation
- ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation
- ./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`
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
services:
# Note: MariaDB is external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
command: --transaction-isolation=READ-COMMITTED
volumes:
@ -415,6 +430,8 @@ services:
- MYSQL_DATABASE=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:
image: redis:alpine
restart: always
@ -451,8 +468,11 @@ Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` varia
```yaml
services:
# Note: MariaDB is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/mariadb
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
command: --transaction-isolation=READ-COMMITTED
volumes:
@ -463,6 +483,8 @@ services:
- MYSQL_DATABASE=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:
image: redis:alpine
restart: always
@ -481,14 +503,17 @@ services:
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
# Note: Nginx is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/nginx/
web:
image: nginx
image: nginx:alpine-slim
restart: always
ports:
- 8080:80
depends_on:
- app
volumes:
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
@ -514,8 +539,11 @@ Example:
```yaml
services:
# Note: PostgreSQL is external service. You can find more information about the configuration here:
# https://hub.docker.com/_/postgres
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
volumes:
- db:/var/lib/postgresql/data
@ -527,6 +555,8 @@ services:
- postgres_db
- postgres_password
- postgres_user
# Note: Redis is an external service. You can find more information about the configuration here:
# https://hub.docker.com/_/redis
redis:
image: redis:alpine
restart: always

View file

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