mirror of
https://github.com/nextcloud/docker.git
synced 2025-03-15 19:05:09 +01:00
merge from master
This commit is contained in:
commit
b9187abe35
227 changed files with 4483 additions and 1211 deletions
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
||||||
|
|
13
.config/redis.config.php
Normal file
13
.config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
.config/smtp.config.php
Normal file
15
.config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -21,48 +21,46 @@ Example | Description
|
||||||
### full
|
### full
|
||||||
The `full` Dockerfile example adds dependencies for all optional packages suggested by nextcloud that may be needed for some features (e.g. Video Preview Generation), as stated in the [Administration Manual](https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html).
|
The `full` Dockerfile example adds dependencies for all optional packages suggested by nextcloud that may be needed for some features (e.g. Video Preview Generation), as stated in the [Administration Manual](https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html).
|
||||||
|
|
||||||
NOTE: The Dockerfile does not install the LibreOffice package (line is commented), because it would increase the generated Image size by approximately 500 MB. In order to install it, simply uncomment the 13th line of the Dockerfile.
|
NOTE: The Dockerfile does not install the LibreOffice package (line is commented), because it would increase the generated Image size by approximately 500 MB. In order to install it, simply uncomment the appropriate line in the Dockerfile.
|
||||||
|
|
||||||
NOTE: Per default, only previews for BMP, GIF, JPEG, MarkDown, MP3, PNG, TXT, and XBitmap Files are generated. The configuration of the preview generation can be done in config.php, as explained in the [Administration Manual](https://docs.nextcloud.com/server/12/admin_manual/configuration_server/config_sample_php_parameters.html#previews)
|
NOTE: Per default, only previews for BMP, GIF, JPEG, MarkDown, MP3, PNG, TXT, and XBitmap Files are generated. The configuration of the preview generation can be done in config.php, as explained in the [Administration Manual](https://docs.nextcloud.com/server/12/admin_manual/configuration_server/config_sample_php_parameters.html#previews)
|
||||||
|
|
||||||
NOTE: Nextcloud recommends [disabling preview generation](https://docs.nextcloud.com/server/12/admin_manual/configuration_server/harden_server.html?highlight=enabledpreviewproviders#disable-preview-image-generation) for high security deployments, as preview generation opens your nextcloud instance to new possible attack vectors.
|
NOTE: Nextcloud recommends [disabling preview generation](https://docs.nextcloud.com/server/12/admin_manual/configuration_server/harden_server.html?highlight=enabledpreviewproviders#disable-preview-image-generation) for high security deployments, as preview generation opens your nextcloud instance to new possible attack vectors.
|
||||||
|
|
||||||
The required steps for each optional/recommended package that is not already in the Nextcloud image are listed here, so that the Dockerfile can easily be modified to only install the needed extra packages. Simply remove the steps for the unwanted packages from the Dockerfile.
|
The required steps for each optional/recommended package that is not already in the Nextcloud image are listed here, so that the Dockerfile can easily be modified to only install the needed extra packages. Simply remove the steps for the unwanted packages from the Dockerfile.
|
||||||
|
|
||||||
#### PHP Module bz2
|
#### PHP Module bz2
|
||||||
`docker-php-ext-install bz2`
|
`docker-php-ext-install bz2`
|
||||||
|
|
||||||
#### PHP Module imagick
|
|
||||||
`apt install libmagickwand-dev`
|
|
||||||
`pecl install imagick`
|
|
||||||
`docker-php-ext-enable imagick`
|
|
||||||
|
|
||||||
#### PHP Module imap
|
#### PHP Module imap
|
||||||
`apt install libc-client-dev libkrb5-dev`
|
`apt install libc-client-dev libkrb5-dev`
|
||||||
`docker-php-ext-configure imap --with-kerberos --with-imap-ssl`
|
`docker-php-ext-configure imap --with-kerberos --with-imap-ssl`
|
||||||
`docker-php-ext-install imap`
|
`docker-php-ext-install imap`
|
||||||
|
|
||||||
#### PHP Module gmp
|
#### PHP Module gmp
|
||||||
`apt install libgmp3-dev`
|
`apt install libgmp3-dev`
|
||||||
`docker-php-ext-install gmp`
|
`docker-php-ext-install gmp`
|
||||||
|
|
||||||
#### PHP Module smbclient
|
#### PHP Module smbclient
|
||||||
`apt install smbclient libsmbclient-dev`
|
`apt install smbclient libsmbclient-dev`
|
||||||
`pecl install smbclient`
|
`pecl install smbclient`
|
||||||
`docker-php-ext-enable smbclient`
|
`docker-php-ext-enable smbclient`
|
||||||
|
|
||||||
#### ffmpeg
|
#### ffmpeg
|
||||||
`apt install ffmpeg`
|
`apt install ffmpeg`
|
||||||
|
|
||||||
|
#### imagemagick SVG support
|
||||||
|
`apt install libmagickcore-6.q16-3-extra`
|
||||||
|
|
||||||
#### LibreOffice
|
#### LibreOffice
|
||||||
`apt install libreoffice`
|
`apt install libreoffice`
|
||||||
|
|
||||||
#### CRON via supervisor
|
#### CRON via supervisor
|
||||||
`apt install supervisor`
|
`apt install supervisor`
|
||||||
`mkdir /var/log/supervisord /var/run/supervisord`
|
`mkdir /var/log/supervisord /var/run/supervisord`
|
||||||
The following Dockerfile commands are also necessary for a sucessfull cron installation:
|
The following Dockerfile commands are also necessary for a sucessfull cron installation:
|
||||||
`COPY supervisord.conf /etc/supervisor/supervisord.conf`
|
`COPY supervisord.conf /etc/supervisor/supervisord.conf`
|
||||||
`CMD ["/usr/bin/supervisord"]`
|
`CMD ["/usr/bin/supervisord"]`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
FROM nextcloud:apache
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -17,7 +17,7 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
app:
|
app:
|
||||||
build: ./app
|
image: nextcloud:apache
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 8080:80
|
- 8080:80
|
||||||
|
@ -25,6 +25,7 @@ services:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_HOST=db
|
- MYSQL_HOST=db
|
||||||
|
- REDIS_HOST=redis
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@ -32,7 +33,7 @@ services:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
build: ./app
|
image: nextcloud:apache
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
FROM nextcloud:fpm-alpine
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -17,12 +17,13 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
app:
|
app:
|
||||||
build: ./app
|
image: nextcloud:fpm-alpine
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_HOST=db
|
- MYSQL_HOST=db
|
||||||
|
- REDIS_HOST=redis
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@ -40,7 +41,7 @@ services:
|
||||||
- app
|
- app
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
build: ./app
|
image: nextcloud:fpm-alpine
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -120,7 +120,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -120,7 +120,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
POSTGRES_PASSWORD=
|
POSTGRES_PASSWORD=
|
||||||
POSTGRES_DB=nextcloud
|
POSTGRES_USER=postgres
|
||||||
POSTGRES_USER=nextcloud
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ services:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_HOST=db
|
- POSTGRES_HOST=db
|
||||||
|
- POSTGRES_DB=nextcloud
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
POSTGRES_PASSWORD=
|
POSTGRES_PASSWORD=
|
||||||
POSTGRES_DB=nextcloud
|
POSTGRES_USER=postgres
|
||||||
POSTGRES_USER=nextcloud
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ services:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_HOST=db
|
- POSTGRES_HOST=db
|
||||||
|
- POSTGRES_DB=nextcloud
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -120,7 +120,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -125,7 +125,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
FROM nextcloud:apache
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -17,7 +17,7 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
app:
|
app:
|
||||||
build: ./app
|
image: nextcloud:apache
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
|
@ -26,6 +26,7 @@ services:
|
||||||
- LETSENCRYPT_HOST=
|
- LETSENCRYPT_HOST=
|
||||||
- LETSENCRYPT_EMAIL=
|
- LETSENCRYPT_EMAIL=
|
||||||
- MYSQL_HOST=db
|
- MYSQL_HOST=db
|
||||||
|
- REDIS_HOST=redis
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@ -36,7 +37,7 @@ services:
|
||||||
- default
|
- default
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
build: ./app
|
image: nextcloud:apache
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
FROM nextcloud:fpm-alpine
|
|
||||||
|
|
||||||
COPY redis.config.php /usr/src/nextcloud/config/redis.config.php
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?php
|
|
||||||
$CONFIG = array (
|
|
||||||
'memcache.locking' => '\OC\Memcache\Redis',
|
|
||||||
'redis' => array(
|
|
||||||
'host' => 'redis',
|
|
||||||
'port' => 6379,
|
|
||||||
),
|
|
||||||
);
|
|
|
@ -17,12 +17,13 @@ services:
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
app:
|
app:
|
||||||
build: ./app
|
image: nextcloud:fpm-alpine
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_HOST=db
|
- MYSQL_HOST=db
|
||||||
|
- REDIS_HOST=redis
|
||||||
env_file:
|
env_file:
|
||||||
- db.env
|
- db.env
|
||||||
depends_on:
|
depends_on:
|
||||||
|
@ -45,7 +46,7 @@ services:
|
||||||
- default
|
- default
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
build: ./app
|
image: nextcloud:fpm-alpine
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- nextcloud:/var/www/html
|
- nextcloud:/var/www/html
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -125,7 +125,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -125,7 +125,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
POSTGRES_PASSWORD=
|
POSTGRES_PASSWORD=
|
||||||
POSTGRES_USER=nextcloud
|
POSTGRES_USER=postgres
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
worker_processes 1;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
@ -125,7 +125,7 @@ http {
|
||||||
|
|
||||||
# Adding the cache control header for js and css files
|
# Adding the cache control header for js and css files
|
||||||
# Make sure it is BELOW the PHP block
|
# Make sure it is BELOW the PHP block
|
||||||
location ~ \.(?:css|js|woff|svg|gif)$ {
|
location ~ \.(?:css|js|woff2?|svg|gif)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463";
|
add_header Cache-Control "public, max-age=15778463";
|
||||||
# Add headers to serve security related headers (It is intended to
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
client_max_body_size 10G;
|
client_max_body_size 10G;
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
POSTGRES_PASSWORD=
|
POSTGRES_PASSWORD=
|
||||||
POSTGRES_USER=nextcloud
|
POSTGRES_USER=postgres
|
||||||
|
|
10
.examples/dockerfiles/cron/fpm-alpine/Dockerfile
Normal file
10
.examples/dockerfiles/cron/fpm-alpine/Dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
FROM nextcloud:fpm-alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache supervisor \
|
||||||
|
&& mkdir /var/log/supervisord /var/run/supervisord
|
||||||
|
|
||||||
|
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
|
ENV NEXTCLOUD_UPDATE=1
|
||||||
|
|
||||||
|
CMD ["/usr/bin/supervisord"]
|
22
.examples/dockerfiles/cron/fpm-alpine/supervisord.conf
Normal file
22
.examples/dockerfiles/cron/fpm-alpine/supervisord.conf
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
logfile=/var/log/supervisord/supervisord.log
|
||||||
|
pidfile=/var/run/supervisord/supervisord.pid
|
||||||
|
childlogdir=/var/log/supervisord/
|
||||||
|
logfile_maxbytes=50MB ; maximum size of logfile before rotation
|
||||||
|
logfile_backups=10 ; number of backed up logfiles
|
||||||
|
loglevel=error
|
||||||
|
|
||||||
|
[program:php-fpm]
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=php-fpm
|
||||||
|
|
||||||
|
[program:cron]
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=/cron.sh
|
|
@ -1,23 +1,55 @@
|
||||||
FROM nextcloud:apache
|
FROM nextcloud:apache
|
||||||
|
|
||||||
RUN mkdir -p /usr/share/man/man1 \
|
RUN set -ex; \
|
||||||
&& apt-get update && apt-get install -y \
|
\
|
||||||
supervisor \
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
libmagickwand-dev \
|
libmagickcore-6.q16-3-extra \
|
||||||
libgmp3-dev \
|
smbclient \
|
||||||
|
supervisor \
|
||||||
|
# libreoffice \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
\
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libbz2-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
smbclient \
|
|
||||||
libsmbclient-dev \
|
libsmbclient-dev \
|
||||||
# libreoffice \
|
; \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
\
|
||||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
&& ln -s "/usr/include/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)/gmp.h" /usr/include/gmp.h \
|
docker-php-ext-install \
|
||||||
&& docker-php-ext-install bz2 gmp imap \
|
bz2 \
|
||||||
&& pecl install imagick smbclient \
|
imap \
|
||||||
&& docker-php-ext-enable imagick smbclient \
|
; \
|
||||||
&& mkdir /var/log/supervisord /var/run/supervisord
|
pecl install smbclient; \
|
||||||
|
docker-php-ext-enable smbclient; \
|
||||||
|
\
|
||||||
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
apt-mark manual $savedAptMark; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '/=>/ { print $3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
|
\
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p \
|
||||||
|
/var/log/supervisord \
|
||||||
|
/var/run/supervisord \
|
||||||
|
;
|
||||||
|
|
||||||
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
|
|
50
.examples/dockerfiles/full/fpm-alpine/Dockerfile
Normal file
50
.examples/dockerfiles/full/fpm-alpine/Dockerfile
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
FROM nextcloud:fpm-alpine
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
apk add --no-cache \
|
||||||
|
ffmpeg \
|
||||||
|
imagemagick \
|
||||||
|
samba-client \
|
||||||
|
supervisor \
|
||||||
|
# libreoffice \
|
||||||
|
;
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
$PHPIZE_DEPS \
|
||||||
|
imap-dev \
|
||||||
|
krb5-dev \
|
||||||
|
libressl-dev \
|
||||||
|
samba-dev \
|
||||||
|
bzip2-dev \
|
||||||
|
; \
|
||||||
|
\
|
||||||
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
|
docker-php-ext-install \
|
||||||
|
bz2 \
|
||||||
|
imap \
|
||||||
|
; \
|
||||||
|
pecl install smbclient; \
|
||||||
|
docker-php-ext-enable smbclient; \
|
||||||
|
\
|
||||||
|
runDeps="$( \
|
||||||
|
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
||||||
|
| tr ',' '\n' \
|
||||||
|
| sort -u \
|
||||||
|
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||||
|
)"; \
|
||||||
|
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||||
|
apk del .build-deps
|
||||||
|
|
||||||
|
RUN mkdir -p \
|
||||||
|
/var/log/supervisord \
|
||||||
|
/var/run/supervisord \
|
||||||
|
;
|
||||||
|
|
||||||
|
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
|
ENV NEXTCLOUD_UPDATE=1
|
||||||
|
|
||||||
|
CMD ["/usr/bin/supervisord"]
|
22
.examples/dockerfiles/full/fpm-alpine/supervisord.conf
Normal file
22
.examples/dockerfiles/full/fpm-alpine/supervisord.conf
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
logfile=/var/log/supervisord/supervisord.log
|
||||||
|
pidfile=/var/run/supervisord/supervisord.pid
|
||||||
|
childlogdir=/var/log/supervisord/
|
||||||
|
logfile_maxbytes=50MB ; maximum size of logfile before rotation
|
||||||
|
logfile_backups=10 ; number of backed up logfiles
|
||||||
|
loglevel=error
|
||||||
|
|
||||||
|
[program:php-fpm]
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=php-fpm
|
||||||
|
|
||||||
|
[program:cron]
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=/cron.sh
|
|
@ -1,23 +1,55 @@
|
||||||
FROM nextcloud:fpm
|
FROM nextcloud:fpm
|
||||||
|
|
||||||
RUN mkdir -p /usr/share/man/man1 \
|
RUN set -ex; \
|
||||||
&& apt-get update && apt-get install -y \
|
\
|
||||||
supervisor \
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
libmagickwand-dev \
|
libmagickcore-6.q16-3-extra \
|
||||||
libgmp3-dev \
|
smbclient \
|
||||||
|
supervisor \
|
||||||
|
# libreoffice \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
\
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libbz2-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
smbclient \
|
|
||||||
libsmbclient-dev \
|
libsmbclient-dev \
|
||||||
# libreoffice \
|
; \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
\
|
||||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
&& ln -s "/usr/include/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)/gmp.h" /usr/include/gmp.h \
|
docker-php-ext-install \
|
||||||
&& docker-php-ext-install bz2 gmp imap \
|
bz2 \
|
||||||
&& pecl install imagick smbclient \
|
imap \
|
||||||
&& docker-php-ext-enable imagick smbclient \
|
; \
|
||||||
&& mkdir /var/log/supervisord /var/run/supervisord
|
pecl install smbclient; \
|
||||||
|
docker-php-ext-enable smbclient; \
|
||||||
|
\
|
||||||
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
apt-mark manual $savedAptMark; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '/=>/ { print $3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
|
\
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p \
|
||||||
|
/var/log/supervisord \
|
||||||
|
/var/run/supervisord \
|
||||||
|
;
|
||||||
|
|
||||||
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,28 @@
|
||||||
FROM nextcloud:apache
|
FROM nextcloud:apache
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN set -ex; \
|
||||||
&& apt-get install -y libc-client-dev libkrb5-dev \
|
\
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
|
\
|
||||||
&& docker-php-ext-install imap
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libc-client-dev \
|
||||||
|
libkrb5-dev \
|
||||||
|
; \
|
||||||
|
\
|
||||||
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
|
docker-php-ext-install imap; \
|
||||||
|
\
|
||||||
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
apt-mark manual $savedAptMark; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '/=>/ { print $3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
|
\
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
22
.examples/dockerfiles/imap/fpm-alpine/Dockerfile
Normal file
22
.examples/dockerfiles/imap/fpm-alpine/Dockerfile
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
FROM nextcloud:fpm-alpine
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
$PHPIZE_DEPS \
|
||||||
|
imap-dev \
|
||||||
|
krb5-dev \
|
||||||
|
libressl-dev \
|
||||||
|
; \
|
||||||
|
\
|
||||||
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
|
docker-php-ext-install imap; \
|
||||||
|
\
|
||||||
|
runDeps="$( \
|
||||||
|
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
||||||
|
| tr ',' '\n' \
|
||||||
|
| sort -u \
|
||||||
|
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||||
|
)"; \
|
||||||
|
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||||
|
apk del .build-deps
|
|
@ -1,7 +1,28 @@
|
||||||
FROM nextcloud:fpm
|
FROM nextcloud:fpm
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN set -ex; \
|
||||||
&& apt-get install -y libc-client-dev libkrb5-dev \
|
\
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
|
\
|
||||||
&& docker-php-ext-install imap
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libc-client-dev \
|
||||||
|
libkrb5-dev \
|
||||||
|
; \
|
||||||
|
\
|
||||||
|
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
|
||||||
|
docker-php-ext-install imap; \
|
||||||
|
\
|
||||||
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
apt-mark manual $savedAptMark; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '/=>/ { print $3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
|
\
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
3
.examples/dockerfiles/smb/fpm-alpine/Dockerfile
Normal file
3
.examples/dockerfiles/smb/fpm-alpine/Dockerfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
FROM nextcloud:fpm-alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache samba-client
|
70
.travis.yml
70
.travis.yml
|
@ -5,6 +5,11 @@ branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
# preload images to avoid timeouts in tests
|
||||||
|
before_install:
|
||||||
|
- docker pull mariadb:10
|
||||||
|
- docker pull postgres:11-alpine
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- git clone https://github.com/docker-library/official-images.git ~/official-images
|
- git clone https://github.com/docker-library/official-images.git ~/official-images
|
||||||
|
|
||||||
|
@ -19,8 +24,8 @@ script:
|
||||||
(
|
(
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
set -x
|
set -x
|
||||||
docker build -t "$image" "${VERSION}/${VARIANT}"
|
travis_retry docker build -t "$image" "${VERSION}/${VARIANT}"
|
||||||
~/official-images/test/run.sh "$image"
|
travis_retry ~/official-images/test/run.sh "$image"
|
||||||
.travis/test-example-dockerfiles.sh "$image"
|
.travis/test-example-dockerfiles.sh "$image"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,6 +33,15 @@ after_script:
|
||||||
- docker images
|
- docker images
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
# https://github.com/docker-library/php/issues/822
|
||||||
|
allow_failures:
|
||||||
|
- env: VERSION=15.0 VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=16.0 VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=17.0 VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=15.0-rc VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=16.0-rc VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=17.0-rc VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=17.0-beta VARIANT=apache ARCH=i386
|
||||||
include:
|
include:
|
||||||
- &test-scripts
|
- &test-scripts
|
||||||
stage: test scripts
|
stage: test scripts
|
||||||
|
@ -37,7 +51,7 @@ jobs:
|
||||||
before_script: skip
|
before_script: skip
|
||||||
script:
|
script:
|
||||||
- hash_before=$(git write-tree)
|
- hash_before=$(git write-tree)
|
||||||
- ./update.sh
|
- travis_retry ./update.sh
|
||||||
- bash -c "[[ $hash_before = $(git add -A && git write-tree) ]]"
|
- bash -c "[[ $hash_before = $(git add -A && git write-tree) ]]"
|
||||||
after_script: skip
|
after_script: skip
|
||||||
|
|
||||||
|
@ -47,7 +61,7 @@ jobs:
|
||||||
- wget -O "$HOME/bin/bashbrew" https://doi-janky.infosiftr.net/job/bashbrew/lastSuccessfulBuild/artifact/bin/bashbrew-amd64
|
- wget -O "$HOME/bin/bashbrew" https://doi-janky.infosiftr.net/job/bashbrew/lastSuccessfulBuild/artifact/bin/bashbrew-amd64
|
||||||
- chmod +x "$HOME/bin/bashbrew"
|
- chmod +x "$HOME/bin/bashbrew"
|
||||||
script:
|
script:
|
||||||
- ./generate-stackbrew-library.sh
|
- travis_retry ./generate-stackbrew-library.sh
|
||||||
|
|
||||||
- stage: test images
|
- stage: test images
|
||||||
env: VERSION=15.0-rc VARIANT=fpm-alpine ARCH=amd64
|
env: VERSION=15.0-rc VARIANT=fpm-alpine ARCH=amd64
|
||||||
|
@ -56,21 +70,33 @@ jobs:
|
||||||
- env: VERSION=15.0-rc VARIANT=fpm ARCH=i386
|
- env: VERSION=15.0-rc VARIANT=fpm ARCH=i386
|
||||||
- env: VERSION=15.0-rc VARIANT=apache ARCH=amd64
|
- env: VERSION=15.0-rc VARIANT=apache ARCH=amd64
|
||||||
- env: VERSION=15.0-rc VARIANT=apache ARCH=i386
|
- env: VERSION=15.0-rc VARIANT=apache ARCH=i386
|
||||||
- env: VERSION=12.0 VARIANT=fpm-alpine ARCH=amd64
|
- env: VERSION=16.0-rc VARIANT=fpm-alpine ARCH=amd64
|
||||||
- env: VERSION=12.0 VARIANT=fpm-alpine ARCH=i386
|
- env: VERSION=16.0-rc VARIANT=fpm-alpine ARCH=i386
|
||||||
- env: VERSION=12.0 VARIANT=fpm ARCH=amd64
|
- env: VERSION=16.0-rc VARIANT=fpm ARCH=amd64
|
||||||
- env: VERSION=12.0 VARIANT=fpm ARCH=i386
|
- env: VERSION=16.0-rc VARIANT=fpm ARCH=i386
|
||||||
- env: VERSION=12.0 VARIANT=apache ARCH=amd64
|
- env: VERSION=16.0-rc VARIANT=apache ARCH=amd64
|
||||||
- env: VERSION=12.0 VARIANT=apache ARCH=i386
|
- env: VERSION=16.0-rc VARIANT=apache ARCH=i386
|
||||||
- env: VERSION=13.0 VARIANT=fpm-alpine ARCH=amd64
|
- env: VERSION=17.0-rc VARIANT=fpm-alpine ARCH=amd64
|
||||||
- env: VERSION=13.0 VARIANT=fpm-alpine ARCH=i386
|
- env: VERSION=17.0-rc VARIANT=fpm-alpine ARCH=i386
|
||||||
- env: VERSION=13.0 VARIANT=fpm ARCH=amd64
|
- env: VERSION=17.0-rc VARIANT=fpm ARCH=amd64
|
||||||
- env: VERSION=13.0 VARIANT=fpm ARCH=i386
|
- env: VERSION=17.0-rc VARIANT=fpm ARCH=i386
|
||||||
- env: VERSION=13.0 VARIANT=apache ARCH=amd64
|
- env: VERSION=17.0-rc VARIANT=apache ARCH=amd64
|
||||||
- env: VERSION=13.0 VARIANT=apache ARCH=i386
|
- env: VERSION=17.0-rc VARIANT=apache ARCH=i386
|
||||||
- env: VERSION=14.0 VARIANT=fpm-alpine ARCH=amd64
|
- env: VERSION=15.0 VARIANT=fpm-alpine ARCH=amd64
|
||||||
- env: VERSION=14.0 VARIANT=fpm-alpine ARCH=i386
|
- env: VERSION=15.0 VARIANT=fpm-alpine ARCH=i386
|
||||||
- env: VERSION=14.0 VARIANT=fpm ARCH=amd64
|
- env: VERSION=15.0 VARIANT=fpm ARCH=amd64
|
||||||
- env: VERSION=14.0 VARIANT=fpm ARCH=i386
|
- env: VERSION=15.0 VARIANT=fpm ARCH=i386
|
||||||
- env: VERSION=14.0 VARIANT=apache ARCH=amd64
|
- env: VERSION=15.0 VARIANT=apache ARCH=amd64
|
||||||
- env: VERSION=14.0 VARIANT=apache ARCH=i386
|
- env: VERSION=15.0 VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=16.0 VARIANT=fpm-alpine ARCH=amd64
|
||||||
|
- env: VERSION=16.0 VARIANT=fpm-alpine ARCH=i386
|
||||||
|
- env: VERSION=16.0 VARIANT=fpm ARCH=amd64
|
||||||
|
- env: VERSION=16.0 VARIANT=fpm ARCH=i386
|
||||||
|
- env: VERSION=16.0 VARIANT=apache ARCH=amd64
|
||||||
|
- env: VERSION=16.0 VARIANT=apache ARCH=i386
|
||||||
|
- env: VERSION=17.0 VARIANT=fpm-alpine ARCH=amd64
|
||||||
|
- env: VERSION=17.0 VARIANT=fpm-alpine ARCH=i386
|
||||||
|
- env: VERSION=17.0 VARIANT=fpm ARCH=amd64
|
||||||
|
- env: VERSION=17.0 VARIANT=fpm ARCH=i386
|
||||||
|
- env: VERSION=17.0 VARIANT=apache ARCH=amd64
|
||||||
|
- env: VERSION=17.0 VARIANT=apache ARCH=i386
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$autoconfig_enabled = false;
|
|
||||||
|
|
||||||
if (getenv('SQLITE_DATABASE')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "mysql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# version_greater A B returns whether A > B
|
|
||||||
version_greater() {
|
|
||||||
[ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# return true if specified directory is empty
|
|
||||||
directory_empty() {
|
|
||||||
[ -z "$(ls -A "$1/")" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
run_as() {
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
su -p www-data -s /bin/sh -c "$1"
|
|
||||||
else
|
|
||||||
sh -c "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
|
||||||
installed_version="0.0.0.0"
|
|
||||||
if [ -f /var/www/html/version.php ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
fi
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
|
|
||||||
if version_greater "$installed_version" "$image_version"; then
|
|
||||||
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if version_greater "$image_version" "$installed_version"; then
|
|
||||||
echo "Initializing nextcloud $image_version ..."
|
|
||||||
if [ "$installed_version" != "0.0.0.0" ]; then
|
|
||||||
echo "Upgrading nextcloud from $installed_version ..."
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
|
|
||||||
fi
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
rsync_options="-rlDog --chown www-data:root"
|
|
||||||
else
|
|
||||||
rsync_options="-rlD"
|
|
||||||
fi
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Initializing finished"
|
|
||||||
|
|
||||||
#install
|
|
||||||
if [ "$installed_version" = "0.0.0.0" ]; then
|
|
||||||
echo "New nextcloud instance"
|
|
||||||
|
|
||||||
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
|
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
install=false
|
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
|
||||||
echo "Installing with SQLite database"
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
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"'
|
|
||||||
install=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
|
||||||
echo "starting nexcloud installation"
|
|
||||||
max_retries=10
|
|
||||||
try=0
|
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
||||||
do
|
|
||||||
echo "retrying install..."
|
|
||||||
try=$((try+1))
|
|
||||||
sleep 3s
|
|
||||||
done
|
|
||||||
if [ "$try" -gt "$max_retries" ]; then
|
|
||||||
echo "installing of nextcloud failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
|
|
||||||
echo "setting trusted domains…"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=1
|
|
||||||
for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
|
|
||||||
DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
||||||
run_as "php /var/www/html/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "running web-based installer on first connect!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#upgrade
|
|
||||||
else
|
|
||||||
run_as 'php /var/www/html/occ upgrade'
|
|
||||||
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
|
|
||||||
echo "The following apps have been disabled:"
|
|
||||||
diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
|
|
||||||
rm -f /tmp/list_before /tmp/list_after
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
|
@ -1,4 +0,0 @@
|
||||||
/config/
|
|
||||||
/data/
|
|
||||||
/custom_apps/
|
|
||||||
/themes/
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$autoconfig_enabled = false;
|
|
||||||
|
|
||||||
if (getenv('SQLITE_DATABASE')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "mysql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# version_greater A B returns whether A > B
|
|
||||||
version_greater() {
|
|
||||||
[ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# return true if specified directory is empty
|
|
||||||
directory_empty() {
|
|
||||||
[ -z "$(ls -A "$1/")" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
run_as() {
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
su -p www-data -s /bin/sh -c "$1"
|
|
||||||
else
|
|
||||||
sh -c "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
|
||||||
installed_version="0.0.0.0"
|
|
||||||
if [ -f /var/www/html/version.php ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
fi
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
|
|
||||||
if version_greater "$installed_version" "$image_version"; then
|
|
||||||
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if version_greater "$image_version" "$installed_version"; then
|
|
||||||
echo "Initializing nextcloud $image_version ..."
|
|
||||||
if [ "$installed_version" != "0.0.0.0" ]; then
|
|
||||||
echo "Upgrading nextcloud from $installed_version ..."
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
|
|
||||||
fi
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
rsync_options="-rlDog --chown www-data:root"
|
|
||||||
else
|
|
||||||
rsync_options="-rlD"
|
|
||||||
fi
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Initializing finished"
|
|
||||||
|
|
||||||
#install
|
|
||||||
if [ "$installed_version" = "0.0.0.0" ]; then
|
|
||||||
echo "New nextcloud instance"
|
|
||||||
|
|
||||||
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
|
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
install=false
|
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
|
||||||
echo "Installing with SQLite database"
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
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"'
|
|
||||||
install=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
|
||||||
echo "starting nexcloud installation"
|
|
||||||
max_retries=10
|
|
||||||
try=0
|
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
||||||
do
|
|
||||||
echo "retrying install..."
|
|
||||||
try=$((try+1))
|
|
||||||
sleep 3s
|
|
||||||
done
|
|
||||||
if [ "$try" -gt "$max_retries" ]; then
|
|
||||||
echo "installing of nextcloud failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
|
|
||||||
echo "setting trusted domains…"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=1
|
|
||||||
for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
|
|
||||||
DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
||||||
run_as "php /var/www/html/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "running web-based installer on first connect!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#upgrade
|
|
||||||
else
|
|
||||||
run_as 'php /var/www/html/occ upgrade'
|
|
||||||
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
|
|
||||||
echo "The following apps have been disabled:"
|
|
||||||
diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
|
|
||||||
rm -f /tmp/list_before /tmp/list_after
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
|
@ -1,4 +0,0 @@
|
||||||
/config/
|
|
||||||
/data/
|
|
||||||
/custom_apps/
|
|
||||||
/themes/
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$autoconfig_enabled = false;
|
|
||||||
|
|
||||||
if (getenv('SQLITE_DATABASE')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "mysql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# version_greater A B returns whether A > B
|
|
||||||
version_greater() {
|
|
||||||
[ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# return true if specified directory is empty
|
|
||||||
directory_empty() {
|
|
||||||
[ -z "$(ls -A "$1/")" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
run_as() {
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
su -p www-data -s /bin/sh -c "$1"
|
|
||||||
else
|
|
||||||
sh -c "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
|
||||||
installed_version="0.0.0.0"
|
|
||||||
if [ -f /var/www/html/version.php ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
fi
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
|
|
||||||
if version_greater "$installed_version" "$image_version"; then
|
|
||||||
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if version_greater "$image_version" "$installed_version"; then
|
|
||||||
echo "Initializing nextcloud $image_version ..."
|
|
||||||
if [ "$installed_version" != "0.0.0.0" ]; then
|
|
||||||
echo "Upgrading nextcloud from $installed_version ..."
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
|
|
||||||
fi
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
rsync_options="-rlDog --chown www-data:root"
|
|
||||||
else
|
|
||||||
rsync_options="-rlD"
|
|
||||||
fi
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Initializing finished"
|
|
||||||
|
|
||||||
#install
|
|
||||||
if [ "$installed_version" = "0.0.0.0" ]; then
|
|
||||||
echo "New nextcloud instance"
|
|
||||||
|
|
||||||
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
|
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
install=false
|
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
|
||||||
echo "Installing with SQLite database"
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
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"'
|
|
||||||
install=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
|
||||||
echo "starting nexcloud installation"
|
|
||||||
max_retries=10
|
|
||||||
try=0
|
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
||||||
do
|
|
||||||
echo "retrying install..."
|
|
||||||
try=$((try+1))
|
|
||||||
sleep 3s
|
|
||||||
done
|
|
||||||
if [ "$try" -gt "$max_retries" ]; then
|
|
||||||
echo "installing of nextcloud failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
|
|
||||||
echo "setting trusted domains…"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=1
|
|
||||||
for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
|
|
||||||
DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
||||||
run_as "php /var/www/html/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "running web-based installer on first connect!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#upgrade
|
|
||||||
else
|
|
||||||
run_as 'php /var/www/html/occ upgrade'
|
|
||||||
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
|
|
||||||
echo "The following apps have been disabled:"
|
|
||||||
diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
|
|
||||||
rm -f /tmp/list_before /tmp/list_after
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
|
@ -1,4 +0,0 @@
|
||||||
/config/
|
|
||||||
/data/
|
|
||||||
/custom_apps/
|
|
||||||
/themes/
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$autoconfig_enabled = false;
|
|
||||||
|
|
||||||
if (getenv('SQLITE_DATABASE')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "mysql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# version_greater A B returns whether A > B
|
|
||||||
version_greater() {
|
|
||||||
[ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# return true if specified directory is empty
|
|
||||||
directory_empty() {
|
|
||||||
[ -z "$(ls -A "$1/")" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
run_as() {
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
su -p www-data -s /bin/sh -c "$1"
|
|
||||||
else
|
|
||||||
sh -c "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
|
||||||
installed_version="0.0.0.0"
|
|
||||||
if [ -f /var/www/html/version.php ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
fi
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
|
|
||||||
if version_greater "$installed_version" "$image_version"; then
|
|
||||||
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if version_greater "$image_version" "$installed_version"; then
|
|
||||||
echo "Initializing nextcloud $image_version ..."
|
|
||||||
if [ "$installed_version" != "0.0.0.0" ]; then
|
|
||||||
echo "Upgrading nextcloud from $installed_version ..."
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
|
|
||||||
fi
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
rsync_options="-rlDog --chown www-data:root"
|
|
||||||
else
|
|
||||||
rsync_options="-rlD"
|
|
||||||
fi
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Initializing finished"
|
|
||||||
|
|
||||||
#install
|
|
||||||
if [ "$installed_version" = "0.0.0.0" ]; then
|
|
||||||
echo "New nextcloud instance"
|
|
||||||
|
|
||||||
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
|
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
install=false
|
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
|
||||||
echo "Installing with SQLite database"
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
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"'
|
|
||||||
install=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
|
||||||
echo "starting nexcloud installation"
|
|
||||||
max_retries=10
|
|
||||||
try=0
|
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
||||||
do
|
|
||||||
echo "retrying install..."
|
|
||||||
try=$((try+1))
|
|
||||||
sleep 3s
|
|
||||||
done
|
|
||||||
if [ "$try" -gt "$max_retries" ]; then
|
|
||||||
echo "installing of nextcloud failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
|
|
||||||
echo "setting trusted domains…"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=1
|
|
||||||
for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
|
|
||||||
DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
||||||
run_as "php /var/www/html/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "running web-based installer on first connect!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#upgrade
|
|
||||||
else
|
|
||||||
run_as 'php /var/www/html/occ upgrade'
|
|
||||||
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
|
|
||||||
echo "The following apps have been disabled:"
|
|
||||||
diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
|
|
||||||
rm -f /tmp/list_before /tmp/list_after
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
|
@ -1,4 +0,0 @@
|
||||||
/config/
|
|
||||||
/data/
|
|
||||||
/custom_apps/
|
|
||||||
/themes/
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$autoconfig_enabled = false;
|
|
||||||
|
|
||||||
if (getenv('SQLITE_DATABASE')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "mysql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
|
||||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
|
||||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
|
||||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
|
||||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
|
||||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
|
||||||
$autoconfig_enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# version_greater A B returns whether A > B
|
|
||||||
version_greater() {
|
|
||||||
[ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# return true if specified directory is empty
|
|
||||||
directory_empty() {
|
|
||||||
[ -z "$(ls -A "$1/")" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
run_as() {
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
su -p www-data -s /bin/sh -c "$1"
|
|
||||||
else
|
|
||||||
sh -c "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
|
||||||
installed_version="0.0.0.0"
|
|
||||||
if [ -f /var/www/html/version.php ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
fi
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
|
|
||||||
|
|
||||||
if version_greater "$installed_version" "$image_version"; then
|
|
||||||
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if version_greater "$image_version" "$installed_version"; then
|
|
||||||
echo "Initializing nextcloud $image_version ..."
|
|
||||||
if [ "$installed_version" != "0.0.0.0" ]; then
|
|
||||||
echo "Upgrading nextcloud from $installed_version ..."
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
|
|
||||||
fi
|
|
||||||
if [ "$(id -u)" = 0 ]; then
|
|
||||||
rsync_options="-rlDog --chown www-data:root"
|
|
||||||
else
|
|
||||||
rsync_options="-rlD"
|
|
||||||
fi
|
|
||||||
rsync $rsync_options --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
|
|
||||||
|
|
||||||
for dir in config data custom_apps themes; do
|
|
||||||
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
|
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Initializing finished"
|
|
||||||
|
|
||||||
#install
|
|
||||||
if [ "$installed_version" = "0.0.0.0" ]; then
|
|
||||||
echo "New nextcloud instance"
|
|
||||||
|
|
||||||
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
|
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
install=false
|
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
|
||||||
echo "Installing with SQLite database"
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
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"'
|
|
||||||
install=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
|
||||||
echo "starting nexcloud installation"
|
|
||||||
max_retries=10
|
|
||||||
try=0
|
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
||||||
do
|
|
||||||
echo "retrying install..."
|
|
||||||
try=$((try+1))
|
|
||||||
sleep 3s
|
|
||||||
done
|
|
||||||
if [ "$try" -gt "$max_retries" ]; then
|
|
||||||
echo "installing of nextcloud failed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
|
|
||||||
echo "setting trusted domains…"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=1
|
|
||||||
for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
|
|
||||||
DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
||||||
run_as "php /var/www/html/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
|
|
||||||
NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "running web-based installer on first connect!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#upgrade
|
|
||||||
else
|
|
||||||
run_as 'php /var/www/html/occ upgrade'
|
|
||||||
|
|
||||||
run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
|
|
||||||
echo "The following apps have been disabled:"
|
|
||||||
diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
|
|
||||||
rm -f /tmp/list_before /tmp/list_after
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$@"
|
|
|
@ -1,4 +0,0 @@
|
||||||
/config/
|
|
||||||
/data/
|
|
||||||
/custom_apps/
|
|
||||||
/themes/
|
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
||||||
FROM php:7.2-apache-stretch
|
FROM php:7.3-apache-buster
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -16,7 +16,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
@ -24,6 +24,7 @@ RUN set -ex; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
|
libevent-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
|
@ -33,12 +34,18 @@ RUN set -ex; \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libgmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
if [ ! -e /usr/include/gmp.h ]; then ln -s /usr/include/$debMultiarch/gmp.h /usr/include/gmp.h; fi;\
|
||||||
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
|
docker-php-ext-configure gmp --with-gmp="/usr/include/$debMultiarch"; \
|
||||||
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -48,17 +55,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
@ -79,7 +89,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -106,7 +115,7 @@ RUN a2enmod rewrite remoteip ;\
|
||||||
} > /etc/apache2/conf-available/remoteip.conf;\
|
} > /etc/apache2/conf-available/remoteip.conf;\
|
||||||
a2enconf remoteip
|
a2enconf remoteip
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 15.0.0RC1
|
ENV NEXTCLOUD_VERSION 15.0.13RC1
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
fetchDeps=" \
|
fetchDeps=" \
|
||||||
|
|
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
||||||
|
|
13
15.0-rc/apache/config/redis.config.php
Normal file
13
15.0-rc/apache/config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
15.0-rc/apache/config/smtp.config.php
Normal file
15
15.0-rc/apache/config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -20,6 +20,20 @@ run_as() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
||||||
|
if [ -n "${REDIS_HOST+x}" ]; then
|
||||||
|
|
||||||
|
echo "Configuring Redis as session handler"
|
||||||
|
{
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis password has been set
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,6 +65,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
rsync $rsync_options --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
|
|
||||||
#install
|
#install
|
||||||
|
@ -63,8 +78,6 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
fi
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -72,7 +85,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install=false
|
install=false
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
||||||
echo "Installing with SQLite database"
|
echo "Installing with SQLite database"
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
||||||
|
@ -90,7 +103,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
if [ "$install" = true ]; then
|
||||||
echo "starting nexcloud installation"
|
echo "starting nextcloud installation"
|
||||||
max_retries=10
|
max_retries=10
|
||||||
try=0
|
try=0
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
||||||
|
|
|
@ -2,3 +2,4 @@
|
||||||
/data/
|
/data/
|
||||||
/custom_apps/
|
/custom_apps/
|
||||||
/themes/
|
/themes/
|
||||||
|
/version.php
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
|
||||||
FROM php:7.2-fpm-alpine3.8
|
FROM php:7.3-fpm-alpine3.10
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -12,7 +12,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
apk add --no-cache --virtual .build-deps \
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
@ -20,19 +20,24 @@ RUN set -ex; \
|
||||||
autoconf \
|
autoconf \
|
||||||
freetype-dev \
|
freetype-dev \
|
||||||
icu-dev \
|
icu-dev \
|
||||||
|
libevent-dev \
|
||||||
libjpeg-turbo-dev \
|
libjpeg-turbo-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libzip-dev \
|
||||||
openldap-dev \
|
openldap-dev \
|
||||||
pcre-dev \
|
pcre-dev \
|
||||||
postgresql-dev \
|
postgresql-dev \
|
||||||
|
imagemagick-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
gmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
docker-php-ext-configure ldap; \
|
docker-php-ext-configure ldap; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -42,17 +47,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
runDeps="$( \
|
runDeps="$( \
|
||||||
|
@ -68,7 +76,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -87,7 +94,7 @@ RUN { \
|
||||||
VOLUME /var/www/html
|
VOLUME /var/www/html
|
||||||
|
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 15.0.0RC1
|
ENV NEXTCLOUD_VERSION 15.0.13RC1
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apk add --no-cache --virtual .fetch-deps \
|
apk add --no-cache --virtual .fetch-deps \
|
||||||
|
|
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
||||||
|
|
13
15.0-rc/fpm-alpine/config/redis.config.php
Normal file
13
15.0-rc/fpm-alpine/config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
15.0-rc/fpm-alpine/config/smtp.config.php
Normal file
15
15.0-rc/fpm-alpine/config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -20,6 +20,20 @@ run_as() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
||||||
|
if [ -n "${REDIS_HOST+x}" ]; then
|
||||||
|
|
||||||
|
echo "Configuring Redis as session handler"
|
||||||
|
{
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis password has been set
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,6 +65,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
rsync $rsync_options --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
|
|
||||||
#install
|
#install
|
||||||
|
@ -63,8 +78,6 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
fi
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -72,7 +85,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install=false
|
install=false
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
||||||
echo "Installing with SQLite database"
|
echo "Installing with SQLite database"
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
||||||
|
@ -90,7 +103,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
if [ "$install" = true ]; then
|
||||||
echo "starting nexcloud installation"
|
echo "starting nextcloud installation"
|
||||||
max_retries=10
|
max_retries=10
|
||||||
try=0
|
try=0
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
||||||
|
|
|
@ -2,3 +2,4 @@
|
||||||
/data/
|
/data/
|
||||||
/custom_apps/
|
/custom_apps/
|
||||||
/themes/
|
/themes/
|
||||||
|
/version.php
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
||||||
FROM php:7.2-fpm-stretch
|
FROM php:7.3-fpm-buster
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -16,7 +16,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
@ -24,6 +24,7 @@ RUN set -ex; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
|
libevent-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
|
@ -33,12 +34,18 @@ RUN set -ex; \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libgmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
if [ ! -e /usr/include/gmp.h ]; then ln -s /usr/include/$debMultiarch/gmp.h /usr/include/gmp.h; fi;\
|
||||||
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
|
docker-php-ext-configure gmp --with-gmp="/usr/include/$debMultiarch"; \
|
||||||
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -48,17 +55,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
@ -79,7 +89,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -98,7 +107,7 @@ RUN { \
|
||||||
VOLUME /var/www/html
|
VOLUME /var/www/html
|
||||||
|
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 15.0.0RC1
|
ENV NEXTCLOUD_VERSION 15.0.13RC1
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
fetchDeps=" \
|
fetchDeps=" \
|
||||||
|
|
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
||||||
|
|
13
15.0-rc/fpm/config/redis.config.php
Normal file
13
15.0-rc/fpm/config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
15.0-rc/fpm/config/smtp.config.php
Normal file
15
15.0-rc/fpm/config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -20,6 +20,20 @@ run_as() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
||||||
|
if [ -n "${REDIS_HOST+x}" ]; then
|
||||||
|
|
||||||
|
echo "Configuring Redis as session handler"
|
||||||
|
{
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis password has been set
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,6 +65,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
rsync $rsync_options --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
|
|
||||||
#install
|
#install
|
||||||
|
@ -63,8 +78,6 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
fi
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -72,7 +85,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install=false
|
install=false
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
||||||
echo "Installing with SQLite database"
|
echo "Installing with SQLite database"
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
||||||
|
@ -90,7 +103,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
if [ "$install" = true ]; then
|
||||||
echo "starting nexcloud installation"
|
echo "starting nextcloud installation"
|
||||||
max_retries=10
|
max_retries=10
|
||||||
try=0
|
try=0
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
||||||
|
|
|
@ -2,3 +2,4 @@
|
||||||
/data/
|
/data/
|
||||||
/custom_apps/
|
/custom_apps/
|
||||||
/themes/
|
/themes/
|
||||||
|
/version.php
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
||||||
FROM php:7.2-apache-stretch
|
FROM php:7.3-apache-buster
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -16,7 +16,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
@ -24,6 +24,7 @@ RUN set -ex; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
|
libevent-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
|
@ -33,12 +34,18 @@ RUN set -ex; \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libgmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
if [ ! -e /usr/include/gmp.h ]; then ln -s /usr/include/$debMultiarch/gmp.h /usr/include/gmp.h; fi;\
|
||||||
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
|
docker-php-ext-configure gmp --with-gmp="/usr/include/$debMultiarch"; \
|
||||||
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -48,17 +55,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
@ -79,7 +89,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -106,7 +115,7 @@ RUN a2enmod rewrite remoteip ;\
|
||||||
} > /etc/apache2/conf-available/remoteip.conf;\
|
} > /etc/apache2/conf-available/remoteip.conf;\
|
||||||
a2enconf remoteip
|
a2enconf remoteip
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 14.0.4
|
ENV NEXTCLOUD_VERSION 15.0.12
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
fetchDeps=" \
|
fetchDeps=" \
|
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
13
15.0/apache/config/redis.config.php
Normal file
13
15.0/apache/config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
15.0/apache/config/smtp.config.php
Normal file
15
15.0/apache/config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -20,6 +20,20 @@ run_as() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
||||||
|
if [ -n "${REDIS_HOST+x}" ]; then
|
||||||
|
|
||||||
|
echo "Configuring Redis as session handler"
|
||||||
|
{
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis password has been set
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,6 +65,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
rsync $rsync_options --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
|
|
||||||
#install
|
#install
|
||||||
|
@ -63,8 +78,6 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
fi
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -72,7 +85,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install=false
|
install=false
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
||||||
echo "Installing with SQLite database"
|
echo "Installing with SQLite database"
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
||||||
|
@ -90,7 +103,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
if [ "$install" = true ]; then
|
||||||
echo "starting nexcloud installation"
|
echo "starting nextcloud installation"
|
||||||
max_retries=10
|
max_retries=10
|
||||||
try=0
|
try=0
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
@ -2,3 +2,4 @@
|
||||||
/data/
|
/data/
|
||||||
/custom_apps/
|
/custom_apps/
|
||||||
/themes/
|
/themes/
|
||||||
|
/version.php
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
|
||||||
FROM php:7.2-fpm-alpine3.8
|
FROM php:7.3-fpm-alpine3.10
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -12,7 +12,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
apk add --no-cache --virtual .build-deps \
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
@ -20,19 +20,24 @@ RUN set -ex; \
|
||||||
autoconf \
|
autoconf \
|
||||||
freetype-dev \
|
freetype-dev \
|
||||||
icu-dev \
|
icu-dev \
|
||||||
|
libevent-dev \
|
||||||
libjpeg-turbo-dev \
|
libjpeg-turbo-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libzip-dev \
|
||||||
openldap-dev \
|
openldap-dev \
|
||||||
pcre-dev \
|
pcre-dev \
|
||||||
postgresql-dev \
|
postgresql-dev \
|
||||||
|
imagemagick-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
gmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
docker-php-ext-configure ldap; \
|
docker-php-ext-configure ldap; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -42,17 +47,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
runDeps="$( \
|
runDeps="$( \
|
||||||
|
@ -68,7 +76,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -87,7 +94,7 @@ RUN { \
|
||||||
VOLUME /var/www/html
|
VOLUME /var/www/html
|
||||||
|
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 14.0.4
|
ENV NEXTCLOUD_VERSION 15.0.12
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apk add --no-cache --virtual .fetch-deps \
|
apk add --no-cache --virtual .fetch-deps \
|
|
@ -23,7 +23,9 @@ if (getenv('SQLITE_DATABASE')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autoconfig_enabled) {
|
if ($autoconfig_enabled) {
|
||||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX') ?: "";
|
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||||
|
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||||
|
}
|
||||||
|
|
||||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||||
}
|
}
|
13
15.0/fpm-alpine/config/redis.config.php
Normal file
13
15.0/fpm-alpine/config/redis.config.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('REDIS_HOST')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||||
|
'memcache.locking' => '\OC\Memcache\Redis',
|
||||||
|
'redis' => array(
|
||||||
|
'host' => getenv('REDIS_HOST'),
|
||||||
|
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||||
|
'password' => getenv('REDIS_HOST_PASSWORD'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
15
15.0/fpm-alpine/config/smtp.config.php
Normal file
15
15.0/fpm-alpine/config/smtp.config.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||||
|
$CONFIG = array (
|
||||||
|
'mail_smtpmode' => 'smtp',
|
||||||
|
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||||
|
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||||
|
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||||
|
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||||
|
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||||
|
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||||
|
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||||
|
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||||
|
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||||
|
);
|
||||||
|
}
|
|
@ -20,6 +20,20 @@ run_as() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
|
||||||
|
if [ -n "${REDIS_HOST+x}" ]; then
|
||||||
|
|
||||||
|
echo "Configuring Redis as session handler"
|
||||||
|
{
|
||||||
|
echo 'session.save_handler = redis'
|
||||||
|
# check if redis password has been set
|
||||||
|
if [ -n "${REDIS_HOST_PASSWORD+x}" ]; then
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}?auth=${REDIS_HOST_PASSWORD}\""
|
||||||
|
else
|
||||||
|
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_HOST_PORT:=6379}\""
|
||||||
|
fi
|
||||||
|
} > /usr/local/etc/php/conf.d/redis-session.ini
|
||||||
|
fi
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,6 +65,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
rsync $rsync_options --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
|
||||||
echo "Initializing finished"
|
echo "Initializing finished"
|
||||||
|
|
||||||
#install
|
#install
|
||||||
|
@ -63,8 +78,6 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
|
||||||
else
|
|
||||||
install_options=$install_options' --database-table-prefix ""'
|
|
||||||
fi
|
fi
|
||||||
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -72,7 +85,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install=false
|
install=false
|
||||||
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
if [ -n "${SQLITE_DATABASE+x}" ]; then
|
||||||
echo "Installing with SQLite database"
|
echo "Installing with SQLite database"
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
install_options=$install_options' --database-name "$SQLITE_DATABASE"'
|
||||||
|
@ -90,7 +103,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install" = true ]; then
|
if [ "$install" = true ]; then
|
||||||
echo "starting nexcloud installation"
|
echo "starting nextcloud installation"
|
||||||
max_retries=10
|
max_retries=10
|
||||||
try=0
|
try=0
|
||||||
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
until run_as "php /var/www/html/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
|
|
@ -2,3 +2,4 @@
|
||||||
/data/
|
/data/
|
||||||
/custom_apps/
|
/custom_apps/
|
||||||
/themes/
|
/themes/
|
||||||
|
/version.php
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
# DO NOT EDIT: created by update.sh from Dockerfile-debian.template
|
||||||
FROM php:7.1-fpm-stretch
|
FROM php:7.3-fpm-buster
|
||||||
|
|
||||||
# entrypoint.sh and cron.sh dependencies
|
# entrypoint.sh and cron.sh dependencies
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
@ -16,7 +16,7 @@ RUN set -ex; \
|
||||||
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
||||||
|
|
||||||
# install the PHP extensions we need
|
# install the PHP extensions we need
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
# see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
savedAptMark="$(apt-mark showmanual)"; \
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
@ -24,6 +24,7 @@ RUN set -ex; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
|
libevent-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
|
@ -33,12 +34,18 @@ RUN set -ex; \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libgmp-dev \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
if [ ! -e /usr/include/gmp.h ]; then ln -s /usr/include/$debMultiarch/gmp.h /usr/include/gmp.h; fi;\
|
||||||
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr; \
|
||||||
|
docker-php-ext-configure gmp --with-gmp="/usr/include/$debMultiarch"; \
|
||||||
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
|
||||||
docker-php-ext-install \
|
docker-php-ext-install -j "$(nproc)" \
|
||||||
exif \
|
exif \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
|
@ -48,17 +55,20 @@ RUN set -ex; \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql \
|
pdo_pgsql \
|
||||||
zip \
|
zip \
|
||||||
|
gmp \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# pecl will claim success even if one install fails, so we need to perform each install separately
|
# pecl will claim success even if one install fails, so we need to perform each install separately
|
||||||
pecl install APCu-5.1.14; \
|
pecl install APCu-5.1.18; \
|
||||||
pecl install memcached-3.0.4; \
|
pecl install memcached-3.1.4; \
|
||||||
pecl install redis-4.2.0; \
|
pecl install redis-4.3.0; \
|
||||||
|
pecl install imagick-3.4.4; \
|
||||||
\
|
\
|
||||||
docker-php-ext-enable \
|
docker-php-ext-enable \
|
||||||
apcu \
|
apcu \
|
||||||
memcached \
|
memcached \
|
||||||
redis \
|
redis \
|
||||||
|
imagick \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
||||||
|
@ -79,7 +89,6 @@ RUN set -ex; \
|
||||||
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
||||||
RUN { \
|
RUN { \
|
||||||
echo 'opcache.enable=1'; \
|
echo 'opcache.enable=1'; \
|
||||||
echo 'opcache.enable_cli=1'; \
|
|
||||||
echo 'opcache.interned_strings_buffer=8'; \
|
echo 'opcache.interned_strings_buffer=8'; \
|
||||||
echo 'opcache.max_accelerated_files=10000'; \
|
echo 'opcache.max_accelerated_files=10000'; \
|
||||||
echo 'opcache.memory_consumption=128'; \
|
echo 'opcache.memory_consumption=128'; \
|
||||||
|
@ -98,7 +107,7 @@ RUN { \
|
||||||
VOLUME /var/www/html
|
VOLUME /var/www/html
|
||||||
|
|
||||||
|
|
||||||
ENV NEXTCLOUD_VERSION 12.0.13
|
ENV NEXTCLOUD_VERSION 15.0.12
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
fetchDeps=" \
|
fetchDeps=" \
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue