0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2025-07-27 09:08:04 +02:00

Compare commits

...

19 commits

Author SHA1 Message Date
rmelotte
3446c02796
Merge 70358187fd into 29d959acfd 2024-10-24 20:30:33 +00:00
GitHub Workflow
29d959acfd Runs update.sh 2024-10-24 19:52:51 +00:00
Valentin Brandl
d3341b61c1
Fix initialization of autocreate and use_ssl (#2309)
According to the documentation, both `OBJECTSTORE_S3_SSL` and
`OBJECTSTORE_S3_AUTOCREATE` should default to `true`.
Currently, when these environment variables are not set, they default to
`false`. (See https://github.com/nextcloud/docker/issues/2308).

This fix works, because `strtolower(false)` returns the empty string. So
when `OBJECTSTORE_S3_SSL` is not set and `getenv('OBJECTSTORE_S3_SSL')`
returns `false`, the check `strtolower($use_ssl) !== 'false'` will
evaluate to `true`.

With this fix, both values will be `true` if they are

* not set
* the empty string
* any string that is not equal to `false` when converted to lowercase

This should now match the documented behavior.

Signed-off-by: Valentin Brandl <mail@vbrandl.net>
2024-10-24 19:52:36 +00:00
Josh
aaa667ad0d
Merge pull request #2320 from nextcloud/jtr/fix-examples-matching-volumes
fix(examples): volumes must match to avoid 💥
2024-10-22 09:40:17 -04:00
Josh
cb8afbbe60
Merge pull request #2321 from nextcloud/jtr/feat-docs-readme-occ-config
feat(readme): Viewing merged config via `occ config:list system`
2024-10-22 09:28:54 -04:00
Josh
090934d9b0
feat(readme): Viewing merged config via occ config:list system
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-22 09:15:05 -04:00
Josh
9b245ac4a1
fix(examples): volumes must match (with-nginx-proxy-postgres-fpm)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:53:55 -04:00
Josh
24b6769682
fix(examples): volumes must match (with-nginx-proxy-postgres-apache)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:52:21 -04:00
Josh
7e188da4fa
fix(examples): volumes must match (with-nginx-proxy-mariadb-fpm)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:51:06 -04:00
Josh
60f205abea
fix(examples): volumes must match (with-nginx-proxy-mariadb-apache)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:49:39 -04:00
Josh
e3dc1f3d62
fix(examples): volumes must match (insecure-postgres-fpm)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:47:11 -04:00
Josh
9395077d11
fix(examples): volumes must match (insecure-postgres-apache)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:45:19 -04:00
Josh
abf51f1cd7
fix(examples): volumes must match (insecure-mariadb-fpm)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:43:54 -04:00
Josh
9b63f3e4dc
fix(examples): volumes must match (insecure-mariadb-apache)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-10-21 17:38:50 -04:00
J0WI
abd813f5fb
Bump stable to 30.0.1
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2024-10-21 16:44:25 +00:00
GitHub Workflow
d03da64ac8 Runs update.sh 2024-10-18 00:32:25 +00:00
GitHub Workflow
178f8b65d3 Runs update.sh 2024-10-11 00:32:21 +00:00
Raphaël Mélotte
70358187fd docker-entrypoint.sh: exit if DB host not set
Since all DB variables but the host can be set using secrets (by
appending '_FILE' to the variable name), it can be easy for a user to
mis-configure their DB host variable by storing them in
MYSQL_HOST_FILE or POSTGRESQL_HOST_FILE (which is not supported).
When that happens, the auto configuration is skipped.
Such a situation is a bit cumbersome to figure out as nothing
indicates why the auto configuration is skipped.
To make to make it obvious to the user, exit early if DB variables
have been set (using secrets or not), but the host has not been
set (for example, because it was set in MYSQL_HOST_FILE).

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
2023-09-26 13:32:04 +02:00
Raphaël Mélotte
f4429bb0ff README.md: clarify that _HOST variables cannot be files
The auto configuration sections seems to imply that POSTGRES_HOST and
MYSQL_HOST can be file variables, while this is not supported. If all
variables are set as files including the host, the installation will
not be done automatically.
This can be hard to figure out, as during the first start of the
container nothing indicates why the auto configuration is not done.

To try to make it a bit clearer in the README, explicitly mention that
using a file for the hosts variable is not supported.

Furthermore, in the docker secrets section it's currently easy to
misread the fact that the last variable mentioned (the host) is not
using '_FILE'. Since it's anyway not part of the group of variables
that support secrets, remove it from the list to avoid confusion.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
2023-09-26 13:32:01 +02:00
32 changed files with 119 additions and 73 deletions

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -23,6 +23,7 @@ services:
- 127.0.0.1:8080:80
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
@ -37,6 +38,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -21,6 +21,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
@ -37,6 +38,7 @@ services:
- 127.0.0.1:8080:80
volumes:
- 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
@ -45,6 +47,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -18,6 +18,7 @@ services:
- 127.0.0.1:8080:80
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- POSTGRES_HOST=db
- REDIS_HOST=redis
@ -32,6 +33,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db
@ -39,4 +41,4 @@ services:
volumes:
db:
nextcloud:
nextcloud:

View file

@ -16,6 +16,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- POSTGRES_HOST=db
- REDIS_HOST=redis
@ -32,6 +33,7 @@ services:
- 127.0.0.1:8080:80
volumes:
- 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
@ -40,6 +42,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -21,6 +21,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- VIRTUAL_HOST=
- LETSENCRYPT_HOST=
@ -45,6 +46,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -21,6 +21,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
@ -36,6 +37,7 @@ services:
restart: always
volumes:
- 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=
@ -51,6 +53,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -16,6 +16,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- VIRTUAL_HOST=
- LETSENCRYPT_HOST=
@ -37,6 +38,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -18,6 +18,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
environment:
- POSTGRES_HOST=db
- REDIS_HOST=redis
@ -33,6 +34,7 @@ services:
restart: always
volumes:
- 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=
@ -48,6 +50,7 @@ services:
restart: always
volumes:
- nextcloud:/var/www/html:z
# NOTE: The `volumes` config of the `cron` and `app` containers must match
entrypoint: /cron.sh
depends_on:
- db

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -140,7 +140,7 @@ RUN { \
} > /etc/apache2/conf-available/apache-limits.conf; \
a2enconf apache-limits
ENV NEXTCLOUD_VERSION 28.0.10
ENV NEXTCLOUD_VERSION 28.0.11
RUN set -ex; \
fetchDeps=" \
@ -150,8 +150,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -65,7 +65,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -120,7 +120,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 28.0.10
ENV NEXTCLOUD_VERSION 28.0.11
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@ -128,8 +128,8 @@ RUN set -ex; \
gnupg \
; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -125,7 +125,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 28.0.10
ENV NEXTCLOUD_VERSION 28.0.11
RUN set -ex; \
fetchDeps=" \
@ -135,8 +135,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -140,7 +140,7 @@ RUN { \
} > /etc/apache2/conf-available/apache-limits.conf; \
a2enconf apache-limits
ENV NEXTCLOUD_VERSION 29.0.7
ENV NEXTCLOUD_VERSION 29.0.8
RUN set -ex; \
fetchDeps=" \
@ -150,8 +150,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -65,7 +65,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -120,7 +120,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 29.0.7
ENV NEXTCLOUD_VERSION 29.0.8
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@ -128,8 +128,8 @@ RUN set -ex; \
gnupg \
; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -125,7 +125,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 29.0.7
ENV NEXTCLOUD_VERSION 29.0.8
RUN set -ex; \
fetchDeps=" \
@ -135,8 +135,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -140,7 +140,7 @@ RUN { \
} > /etc/apache2/conf-available/apache-limits.conf; \
a2enconf apache-limits
ENV NEXTCLOUD_VERSION 30.0.0
ENV NEXTCLOUD_VERSION 30.0.1
RUN set -ex; \
fetchDeps=" \
@ -150,8 +150,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -65,7 +65,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -120,7 +120,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 30.0.0
ENV NEXTCLOUD_VERSION 30.0.1
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@ -128,8 +128,8 @@ RUN set -ex; \
gnupg \
; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -67,7 +67,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \
pecl install imagick-3.7.0; \
pecl install memcached-3.2.0; \
pecl install memcached-3.3.0; \
pecl install redis-6.1.0; \
\
docker-php-ext-enable \
@ -125,7 +125,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 30.0.0
ENV NEXTCLOUD_VERSION 30.0.1
RUN set -ex; \
fetchDeps=" \
@ -135,8 +135,8 @@ RUN set -ex; \
apt-get update; \
apt-get install -y --no-install-recommends $fetchDeps; \
\
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \
curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg key from https://nextcloud.com/nextcloud.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \

View file

@ -14,8 +14,8 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
// required for older protocol versions

View file

@ -103,7 +103,8 @@ If mounting additional volumes under `/var/www/html`, you should consider:
You should note that data inside the main folder (`/var/www/html`) will be overridden/removed during installation and upgrades, unless listed in [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude). The additional volumes officially supported are already in that list, but custom volumes will need to be added by you. We suggest mounting custom storage volumes outside of `/var/www/html` and if possible read-only so that making this adjustment is unnecessary. If you must do so, however, you may build a custom image with a modified `/upgrade.exclude` file that incorporates your custom volume(s).
## Using the Nextcloud command-line interface
## Using the Nextcloud command-line interface (`occ`)
To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command):
```console
$ docker exec --user www-data CONTAINER_ID php occ
@ -112,6 +113,23 @@ or for docker compose:
```console
$ docker compose exec --user www-data app php occ
```
or even shorter:
```console
$ docker compose exec -u33 app ./occ
```
Note: substitute `82` for `33` if using the Alpine-based images.
## Viewing the Nextcloud configuration (`config.php`)
The image takes advantage of Nextcloud's [Multiple config.php support](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#multiple-config-php-file) to inject auto configuration environment variables and set image specific config values.
This means that merely viewing your `config.php` will not give you an accurate view of your running config. Instead, you should use Nextcloud's [`occ config:list system` command](https://docs.nextcloud.com/server/latest/admin_manual/occ_command.html#config-commands-label) to get get a complete view of your merged configuration. This has the added benefit of automatically omitting sensitive values such as passwords and secrets from the output by default (e.g. useful for shared publicly or assisting others when troubleshooting or reporting a bug).
```console
$ docker compose exec -u33 app ./occ config:list system
```
The `--private` flag can also be specified, in order to output all configuration values including passwords and secrets.
## Auto configuration via environment variables
The Nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. You must specify all of the environment variables for a given database or the database environment variables defaults to SQLITE. ONLY use one database type!
@ -131,7 +149,7 @@ __PostgreSQL__:
- `POSTGRES_PASSWORD` Password for the database user using postgres.
- `POSTGRES_HOST` Hostname of the database server using postgres.
As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker-secrets) section below.
As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables (except for `POSTGRES_HOST` and `MYSQL_HOST`, which cannot be loaded from files), , causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker-secrets) section below.
If you set any group of values (i.e. all of `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`), they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):
@ -455,7 +473,7 @@ secrets:
Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DATABASE`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `REDIS_HOST_PASSWORD`, `SMTP_PASSWORD`, `OBJECTSTORE_S3_KEY`, and `OBJECTSTORE_S3_SECRET`.
If you set any group of values (i.e. all of `MYSQL_DATABASE_FILE`, `MYSQL_USER_FILE`, `MYSQL_PASSWORD_FILE`, `MYSQL_HOST`), the script will not use the corresponding group of environment variables (`MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`).
If you set any group of values (i.e. all of `MYSQL_DATABASE_FILE`, `MYSQL_USER_FILE`, `MYSQL_PASSWORD_FILE`), the script will not use the corresponding group of environment variables (`MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`).
# Make your Nextcloud available from the internet
Until here, your Nextcloud is just available from your docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory.

View file

@ -207,12 +207,20 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
# shellcheck disable=SC2016
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
install=true
elif [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ]; then
elif [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ]; then
if [ -z "${MYSQL_HOST}" ] ; then
echo "MySQL credentials set but no MySQL host set. Please make sure \$MYSQL_HOST is set."
exit 1
fi
echo "Installing with MySQL database"
# shellcheck disable=SC2016
install_options=$install_options' --database mysql --database-name "$MYSQL_DATABASE" --database-user "$MYSQL_USER" --database-pass "$MYSQL_PASSWORD" --database-host "$MYSQL_HOST"'
install=true
elif [ -n "${POSTGRES_DB+x}" ] && [ -n "${POSTGRES_USER+x}" ] && [ -n "${POSTGRES_PASSWORD+x}" ] && [ -n "${POSTGRES_HOST+x}" ]; then
elif [ -n "${POSTGRES_DB+x}" ] && [ -n "${POSTGRES_USER+x}" ] && [ -n "${POSTGRES_PASSWORD+x}" ]; then
if [ -z "${POSTGRES_HOST}" ] ; then
echo "PostgreSQL credentials set but no PostgreSQL host set. Please make sure \$POSTGRES_HOST is set."
exit 1
fi
echo "Installing with PostgreSQL database"
# shellcheck disable=SC2016
install_options=$install_options' --database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST"'

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -Eeuo pipefail
stable_channel='29.0.7'
stable_channel='30.0.1'
self="$(basename "$BASH_SOURCE")"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"

View file

@ -1 +1 @@
30.0.0
30.0.1

View file

@ -1,9 +1,9 @@
{
"30": {
"branch": "30",
"version": "30.0.0",
"url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc",
"version": "30.0.1",
"url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc",
"variants": {
"apache": {
"variant": "apache",
@ -27,9 +27,9 @@
},
"29": {
"branch": "29",
"version": "29.0.7",
"url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-29.0.7.tar.bz2.asc",
"version": "29.0.8",
"url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-29.0.8.tar.bz2.asc",
"variants": {
"apache": {
"variant": "apache",
@ -53,9 +53,9 @@
},
"28": {
"branch": "28",
"version": "28.0.10",
"url": "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-28.0.10.tar.bz2.asc",
"version": "28.0.11",
"url": "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2",
"ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-28.0.11.tar.bz2.asc",
"variants": {
"apache": {
"variant": "apache",