Merge pull request #69 from EpicMorg/develop

Great spring update
This commit is contained in:
STAM 2022-06-24 13:27:06 +03:00 committed by GitHub
commit 5d4843e645
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1605 changed files with 25829 additions and 1776 deletions

View File

@ -1,5 +1,18 @@
## Changelog ## Changelog
### 2022 ### 2022
* `june`:
* new `python` base images. supported `2.7`, `3.6`, `3.7`, `3.8`, `3.9`, `3.10`, `3.11`
* added some soft to `debian` base images.
* `april, may` - :x: `BREAKING CHANGES` :x:
* deprecating `epicmorg/prod`, `epicmorg/edge`, `epicmorg/develop` images.
* legacy images are replaced by new base images. see `epicmorg/debian` section.
* added `nodejs18`
* updated `jira8`, `bitbucket`, `vscode`
* updated `apache2`, `zabbix`, `nextcloud`
* added `retracker` by [vvampirius/retracker](https://github.com/vvampirius/retracker).
* `february, march`
* new `nextcloud` images, updated `atlassian` images.
* new `nodejs` iamges.
* `january` * `january`
* fixed `apache2` * fixed `apache2`
* added `php8` support * added `php8` support

387
Makefile
View File

@ -1,6 +1,6 @@
VERSION = "2021.11.12" VERSION = "2022.05.07"
AUTHOR = "EpicMorg" AUTHOR = "EpicMorg"
MODIFIED = "AlexZ" MODIFIED = "STAM"
DOCKER_SCAN_SUGGEST = false DOCKER_SCAN_SUGGEST = false
all: app all: app
@ -43,132 +43,278 @@ docker-clean:
docker system prune -af docker system prune -af
images: images:
make docker-clean # make docker-clean
make advanced-images make advanced-images
make docker-clean
make ecosystem-images make ecosystem-images
make docker-clean # make docker-clean
advanced-images: advanced-images:
@echo "=======================================" @echo "======================================="
@echo "===== Building third-party images =====" @echo "===== Building third-party images ====="
@echo "=======================================" @echo "======================================="
make advanced-redash-images
make advanced-mattermost-images
make advanced-nextcloud-latest-images
make advanced-teamcity-server-images
make advanced-zabbix-images
make advanced-nextcloud-images
make advanced-nextcloud-patched-images
cd `pwd`/linux/advanced/zabbix/agent && pwd && make advanced-mattermost-images:
cd `pwd`/linux/advanced/zabbix/java-gateway && pwd && make cd `pwd`/linux/advanced/mattermost && pwd && make build && make deploy
cd `pwd`/linux/advanced/zabbix/proxy && pwd && make
cd `pwd`/linux/advanced/zabbix/server && pwd && make
cd `pwd`/linux/advanced/zabbix/web && pwd && make
cd `pwd`/linux/advanced/mattermost && pwd && make advanced-nextcloud-latest-images:
cd `pwd`/linux/advanced/nextcloud/pure/latest && pwd && make cd `pwd`/linux/advanced/nextcloud/pure/latest && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/latest && pwd && make cd `pwd`/linux/advanced/nextcloud/patched/latest && pwd && make build && make deploy
cd `pwd`/linux/advanced/teamcity/server && pwd && make
cd `pwd`/linux/advanced/redash && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/14 && pwd && make advanced-teamcity-server-images:
cd `pwd`/linux/advanced/nextcloud/pure/15 && pwd && make cd `pwd`/linux/advanced/teamcity/server && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/16 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/17 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/18 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/19 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/20 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/21 && pwd && make
cd `pwd`/linux/advanced/nextcloud/pure/22 && pwd && make
cd `pwd`/linux/advanced/nextcloud/patched/14 && pwd && make advanced-redash-images:
cd `pwd`/linux/advanced/nextcloud/patched/15 && pwd && make cd `pwd`/linux/advanced/redash && pwd && make sync && make patch && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/16 && pwd && make
cd `pwd`/linux/advanced/nextcloud/patched/17 && pwd && make advanced-zabbix-images:
cd `pwd`/linux/advanced/nextcloud/patched/18 && pwd && make cd `pwd`/linux/advanced/zabbix/agent && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/19 && pwd && make cd `pwd`/linux/advanced/zabbix/java-gateway && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/20 && pwd && make cd `pwd`/linux/advanced/zabbix/proxy && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/21 && pwd && make cd `pwd`/linux/advanced/zabbix/server && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/22 && pwd && make cd `pwd`/linux/advanced/zabbix/web && pwd && make build && make deploy
advanced-nextcloud-images:
cd `pwd`/linux/advanced/nextcloud/pure/14 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/15 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/16 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/17 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/18 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/19 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/20 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/21 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/22 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/23 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/pure/24 && pwd && make build && make deploy
advanced-nextcloud-patched-images:
cd `pwd`/linux/advanced/nextcloud/patched/14 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/15 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/16 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/17 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/18 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/19 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/20 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/21 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/22 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/23 && pwd && make build && make deploy
cd `pwd`/linux/advanced/nextcloud/patched/24 && pwd && make build && make deploy
ecosystem-images: ecosystem-images:
@echo "=======================================" make bundle-base-images
@echo "===== Building EpicMorg images =====" make ecosystem-php-images
@echo "=======================================" make ecosystem-apache2-images
make ecosystem-testrail-images
make ecosystem-torrserver-images
make ecosystem-nodejs-images
make ecosystem-qbittorrent-images
make ecosystem-vk2discord-images
make ecosystem-postgres-images
make ecosystem-teamcity-agent-images
make ecosystem-nginx-images
make ecosystem-vscode-server-images
cd `pwd`/linux/ecosystem/epicmorg/prod/main && pwd && make ecosystem-pyhton-images:
cd `pwd`/linux/ecosystem/epicmorg/prod/jdk6 && pwd && make make ecosystem-pyhton-images-main
cd `pwd`/linux/ecosystem/epicmorg/prod/jdk7 && pwd && make make ecosystem-pyhton-images-develop
cd `pwd`/linux/ecosystem/epicmorg/prod/jdk8 && pwd && make
cd `pwd`/linux/ecosystem/epicmorg/prod/jdk11 && pwd && make
cd `pwd`/linux/ecosystem/epicmorg/prod/jdk16 && pwd && make
cd `pwd`/linux/ecosystem/epicmorg/edge/main && pwd && make ecosystem-pyhton-images-main:
cd `pwd`/linux/ecosystem/epicmorg/edge/jdk6 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/main/2.7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/edge/jdk7 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/main/3.6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/edge/jdk8 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/main/3.7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/edge/jdk11 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/main/3.8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/edge/jdk16 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/main/3.9 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/python/main/3.10 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/python/main/3.11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/devel/main && pwd && make ecosystem-pyhton-images-develop:
cd `pwd`/linux/ecosystem/epicmorg/devel/jdk6 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/develop/2.7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/devel/jdk7 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/devel/jdk8 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/devel/jdk11 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/devel/jdk16 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.9 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.10 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/python/develop/3.11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/php/latest && pwd && make ecosystem-debian-images:
cd `pwd`/linux/ecosystem/php/php7.2 && pwd && make make ecosystem-debian-jessie-images
cd `pwd`/linux/ecosystem/php/php7.3 && pwd && make make ecosystem-debian-stretch-images
cd `pwd`/linux/ecosystem/php/php7.4 && pwd && make make ecosystem-debian-buster-images
make ecosystem-debian-bullseye-images
make ecosystem-debian-bookworm-images
cd `pwd`/linux/ecosystem/apache2/latest && pwd && make ecosystem-debian-jessie-images:
cd `pwd`/linux/ecosystem/apache2/php7.2 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/slim && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/apache2/php7.3 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/apache2/php7.4 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/develop && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk13 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/08-jessie/jdk18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/testrail/latest && pwd && make ecosystem-debian-stretch-images:
cd `pwd`/linux/ecosystem/testrail/ad && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/slim && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/testrail/ldap && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/develop && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/torrserver && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk13 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk16 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk17 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/09-stretch/jdk18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/latest && pwd && make ecosystem-debian-buster-images:
cd `pwd`/linux/ecosystem/postgres/8.2 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/slim && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/8.3 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/8.4 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/develop && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.0 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.1 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.2 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.3 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.4 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.5 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk13 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.6 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/10 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/11 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/12 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/13 && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/10-buster/jdk18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/14 && pwd && make
cd `pwd`/linux/ecosystem/qbittorrent/latest && pwd && make ecosystem-debian-bullseye-images:
cd `pwd`/linux/ecosystem/qbittorrent/stable && pwd && make cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/slim && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/develop && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk12 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk13 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/vk2discord && pwd && make ecosystem-debian-bookworm-images:
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/slim && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/develop && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk7 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk12 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk13 && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/latest && pwd && make ecosystem-php-images:
cd `pwd`/linux/ecosystem/php/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/php/php7.2 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/php/php7.3 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/php/php7.4 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/php/php8.0 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/amxx-sdk && pwd && make ecosystem-apache2-images:
cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk && pwd && make cd `pwd`/linux/ecosystem/apache2/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make cd `pwd`/linux/ecosystem/apache2/php7.2 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make cd `pwd`/linux/ecosystem/apache2/php7.3 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node12 && pwd && make cd `pwd`/linux/ecosystem/apache2/php7.4 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node14 && pwd && make cd `pwd`/linux/ecosystem/apache2/php8.0 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node15 && pwd && make
cd `pwd`/linux/ecosystem/teamcity/agent/node16 && pwd && make
cd `pwd`/linux/ecosystem/teamcity/agent/php7.2 && pwd && make
cd `pwd`/linux/ecosystem/teamcity/agent/php7.3 && pwd && make
cd `pwd`/linux/ecosystem/teamcity/agent/php7.4 && pwd && make
cd `pwd`/linux/ecosystem/teamcity/agent/steam-sdk && pwd && make
cd `pwd`/linux/ecosystem/nginx/latest/main && pwd && make ecosystem-testrail-images:
cd `pwd`/linux/ecosystem/nginx/latest/php && pwd && make cd `pwd`/linux/ecosystem/testrail/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nginx/latest/rtmp-hls && pwd && make cd `pwd`/linux/ecosystem/testrail/ad && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/testrail/ldap && pwd && make build && make deploy
ecosystem-torrserver-images:
cd `pwd`/linux/ecosystem/torrserver && pwd && make build && make deploy
ecosystem-electron-release-server-images:
cd `pwd`/linux/ecosystem/electron-release-server && pwd && make build && make deploy
ecosystem-nodejs-images:
cd `pwd`/linux/ecosystem/nodejs/current && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/lts && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node10 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node13 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nodejs/node18 && pwd && make build && make deploy
ecosystem-vk2discord-images:
cd `pwd`/linux/ecosystem/vk2discord && pwd && make build && make deploy
ecosystem-qbittorrent-images:
cd `pwd`/linux/ecosystem/qbittorrent && pwd && make build && make deploy
ecosystem-postgres-images:
cd `pwd`/linux/ecosystem/postgres/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/8.2 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/8.3 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/8.4 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.0 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.1 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.2 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.3 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.4 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.5 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/9.6 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/10 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/11 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/13 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/postgres/14 && pwd && make build && make deploy
ecosystem-teamcity-agent-images:
cd `pwd`/linux/ecosystem/teamcity/agent/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/amxx-sdk && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node12 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node14 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node15 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node16 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node17 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/node18 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/php7.2 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/php7.3 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/php7.4 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/php8.0 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/teamcity/agent/steam-sdk && pwd && make build && make deploy
ecosystem-nginx-images:
cd `pwd`/linux/ecosystem/nginx/latest/main && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nginx/latest/php && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/nginx/latest/rtmp-hls && pwd && make build && make deploy
ecosystem-vscode-server-images:
cd `pwd`/linux/advanced/vscode-server/latest && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/latest && pwd && make build && make deploy
cd `pwd`/linux/advanced/vscode-server/devops && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/devops && pwd && make build && make deploy
cd `pwd`/linux/advanced/vscode-server/amxx && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/amxx && pwd && make build && make deploy
@ -178,3 +324,40 @@ ecosystem-images:
cd `pwd`/linux/advanced/vscode-server/dotnet-full && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/dotnet-full && pwd && make build && make deploy
cd `pwd`/linux/advanced/vscode-server/dotnet && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/dotnet && pwd && make build && make deploy
cd `pwd`/linux/advanced/vscode-server/mono && pwd && make build && make deploy cd `pwd`/linux/advanced/vscode-server/mono && pwd && make build && make deploy
bundle-base-images:
@echo "======================================="
@echo "===== Building EpicMorg images ====="
@echo "======================================="
make ecosystem-pyhton-images
make ecosystem-debian-images
bundle-teamcity:
@echo "======================================="
@echo "===== Building TeamCity images ====="
@echo "======================================="
make advanced-teamcity-server-images
make ecosystem-teamcity-agent-images
bundle-atlassian:
@echo "======================================="
@echo "===== Building Atlassian images ====="
@echo "======================================="
cd `pwd`/linux/ecosystem/atlassian/bitbucket/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/confluence/latest && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/atlassian/crucible/latest && pwd && make build && make deploy
# cd `pwd`/linux/ecosystem/atlassian/fisheye/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/fisheye-crucible/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/jira/latest && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/jira/8/8.22.0 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/jira/8/8.22.1 && pwd && make build && make deploy
cd `pwd`/linux/ecosystem/atlassian/jira/8/8.22.2 && pwd && make build && make deploy
bundle-web:
@echo "======================================="
@echo "===== Building web images ====="
@echo "======================================="
make ecosystem-php-images
make ecosystem-apache2-images
make ecosystem-nginx-images

View File

@ -6,7 +6,7 @@ app:
make clean make clean
build: build:
docker-compose build --compress --parallel docker-compose build --compress --parallel --progress=plain
deploy: deploy:
docker-compose push docker-compose push

View File

@ -0,0 +1,8 @@
FROM epicmorg/nextcloud:23
##################################################################
# thank u, mac users. rolling back normal ZipStreammer
##################################################################
RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php
ADD Streamer.php /usr/src/nextcloud/lib/private/
RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php

View File

@ -0,0 +1,527 @@
# What is Nextcloud?
[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages)
[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh)
[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud)
[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud)
[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud)
[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud)
[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud)
[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud)
[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud)
[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud)
[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud)
A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.
![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg)
# How to use this image
This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from.
The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified.
The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.
[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml)
## Using the apache image
The apache image contains a webserver and exposes port 80. To start the container type:
```console
$ docker run -d -p 8080:80 nextcloud
```
Now you can access Nextcloud at http://localhost:8080/ from your host system.
## Using the fpm image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy.
If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network <NAME> ...` or a `docker-compose` file).
In both cases you don't want to map the fpm port to your host.
```console
$ docker run -d nextcloud:fpm
```
As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose).
## Using an external database
By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section.
## Persistent data
The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted.
A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud.
Nextcloud:
- `/var/www/html/` folder where all nextcloud data lives
```console
$ docker run -d \
-v nextcloud:/var/www/html \
nextcloud
```
Database:
- `/var/lib/mysql` MySQL / MariaDB Data
- `/var/lib/postgresql/data` PostgreSQL Data
```console
$ docker run -d \
-v db:/var/lib/mysql \
mariadb
```
If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps.
The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder.
Overview of the folders that can be mounted as volumes:
- `/var/www/html` Main folder, needed for updating
- `/var/www/html/custom_apps` installed / modified apps
- `/var/www/html/config` local configuration
- `/var/www/html/data` the actual data of your Nextcloud
- `/var/www/html/themes/<YOUR_CUSTOM_THEME>` theming/branding
If you want to use named volumes for all of these, it would look like this:
```console
$ docker run -d \
-v nextcloud:/var/www/html \
-v apps:/var/www/html/custom_apps \
-v config:/var/www/html/config \
-v data:/var/www/html/data \
-v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME> \
nextcloud
```
## Using the Nextcloud command-line interface
To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command):
```console
$ docker exec --user www-data CONTAINER_ID php occ
```
or for docker-compose:
```console
$ docker-compose exec --user www-data app php occ
```
## Auto configuration via environment variables
The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type!
__SQLite__:
- `SQLITE_DATABASE` Name of the database using sqlite
__MYSQL/MariaDB__:
- `MYSQL_DATABASE` Name of the database using mysql / mariadb.
- `MYSQL_USER` Username for the database using mysql / mariadb.
- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb.
- `MYSQL_HOST` Hostname of the database server using mysql / mariadb.
__PostgreSQL__:
- `POSTGRES_DB` Name of the database using postgres.
- `POSTGRES_USER` Username for the database using postgres.
- `POSTGRES_PASSWORD` Password for the database user using postgres.
- `POSTGRES_HOST` Hostname of the database server using postgres.
If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):
- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user.
- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user.
If you want, you can set the data directory, otherwise default value will be used.
- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users.
One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install.
- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains
The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with
- `NEXTCLOUD_UPDATE` (default: _0_)
If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters:
- `REDIS_HOST` (not set by default) Name of Redis container
- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports.
- `REDIS_HOST_PASSWORD` (not set by default) Redis password
The use of Redis is recommended to prevent file locking problems. See the examples for further instructions.
To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add:
- `SMTP_HOST` (not set by default): The hostname of the SMTP server.
- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS.
- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS.
- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required.
- `SMTP_NAME` (empty by default): The username for the authentication.
- `SMTP_PASSWORD` (empty by default): The password for the authentication.
- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud.
- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP.
To use an external S3 compatible object store as primary storage, set the following variables:
- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server
- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in
- `OBJECTSTORE_S3_KEY`: AWS style access key
- `OBJECTSTORE_S3_SECRET`: AWS style secret access key
- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over
- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server
- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in.
- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information.
To use an external OpenStack Swift object store as primary storage, set the following variables:
- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint
- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container
- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username
- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password
- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain
- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name
- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain
- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name
- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region
- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information.
## Using the apache image behind a reverse proxy and auto configure server host and protocol
The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`.
- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip.
- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4.
If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters.
- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port.
- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https.
- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy.
- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address.
Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details.
Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together.
# Running this image with docker-compose
The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for.
At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information.
## Base version - apache
This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
## Base version - FPM
When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples).
As this setup does **not include encryption**, it should be run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
web:
image: nginx
ports:
- 8080:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
# Docker Secrets
As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/<secret_name> files. For example:
```yaml
version: '3.2'
services:
db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
secrets:
- postgres_db
- postgres_password
- postgres_user
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
- NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user
depends_on:
- db
secrets:
- nextcloud_admin_password
- nextcloud_admin_user
- postgres_db
- postgres_password
- postgres_user
volumes:
db:
nextcloud:
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password.txt # put admin password to this file
nextcloud_admin_user:
file: ./nextcloud_admin_user.txt # put admin username to this file
postgres_db:
file: ./postgres_db.txt # put postgresql db name to this file
postgres_password:
file: ./postgres_password.txt # put postgresql password to this file
postgres_user:
file: ./postgres_user.txt # put postgresql username to this file
```
Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`.
# Make your Nextcloud available from the internet
Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory.
## HTTPS - SSL encryption
There are many different possibilities to introduce encryption depending on your setup.
We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you.
In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup.
# First use
When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file.
# Update to a newer version
Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one.
**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.**
Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected.
```console
$ docker pull nextcloud
$ docker stop <your_nextcloud_container>
$ docker rm <your_nextcloud_container>
$ docker run <OPTIONS> -d nextcloud
```
Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping.
When using docker-compose your compose file takes care of your configuration, so you just have to run:
```console
$ docker-compose pull
$ docker-compose up -d
```
# Adding Features
A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it.
Start your derived image with the `FROM` statement and add whatever you like.
```yaml
FROM nextcloud:apache
RUN ...
```
The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication.
If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file)
```yaml
app:
build: .
links:
- db
volumes:
- data:/var/www/html/data
- config:/var/www/html/config
- apps:/var/www/html/apps
restart: always
```
If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work.
```yaml
FROM nextcloud:apache
...
ENV NEXTCLOUD_UPDATE=1
CMD ["/usr/bin/supervisord"]
```
**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run:
```console
docker build -t your-name --pull .
docker run -d your-name
```
or for docker-compose:
```console
docker-compose build --pull
docker-compose up -d
```
The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image.
# Migrating an existing installation
You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for:
1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there.
2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container)
- To import from a MySQL dump use the following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp"
docker-compose exec db rm /dmp
```
- To import from a PostgreSQL dump use to following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp"
docker-compose exec db rm /dmp
```
3. Edit your config.php
1. Set database connection
- In case of MySQL database
```php
'dbhost' => 'db:3306',
```
- In case of PostgreSQL database
```php
'dbhost' => 'db:5432',
```
2. Make sure you have no configuration for the `apps_paths`. Delete lines like these
```diff
- "apps_paths" => array (
- 0 => array (
- "path" => OC::$SERVERROOT."/apps",
- "url" => "/apps",
- "writable" => true,
- ),
```
3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable
```php
'apps_paths' => array (
0 => array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
```
4. Make sure your data directory is set to /var/www/html/data
```php
'datadirectory' => '/var/www/html/data',
```
4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container):
```console
docker cp ./data/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/data
docker cp ./theming/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/theming
docker cp ./config/config.php nextcloud_app_1:/var/www/html/config
docker-compose exec app chown -R www-data:www-data /var/www/html/config
```
5. Copy only the custom apps you use (or simply redownload them from the web interface):
```console
docker cp ./custom_apps/ nextcloud_data:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps
```
# Questions / Issues
If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue.

View File

@ -0,0 +1,190 @@
<?php
/**
*
*
* FIXED ZipStreammer to 64bit. 1) https://github.com/nextcloud/server/pull/15367
* 2) https://github.com/artonge/server/commit/435022515de1983f0fe3d3116acb71a0ed439693
*
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Daniel Calviño Sánchez <danxuliu@gmail.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Victor Dubiniuk <dubiniuk@owncloud.com>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
namespace OC;
use OC\Files\Filesystem;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\IRequest;
use ownCloud\TarStreamer\TarStreamer;
use ZipStreamer\ZipStreamer;
class Streamer {
// array of regexp. Matching user agents will get tar instead of zip
private $preferTarFor = [ '/macintosh|mac os x/i' ];
// streamer instance
private $streamerInstance;
/**
* Streamer constructor.
*
* @param IRequest $request
* @param int $size The size of the files in bytes
* @param int $numberOfFiles The number of files (and directories) that will
* be included in the streamed file
*/
public function __construct(IRequest $request, $size, int $numberOfFiles){
/**
* zip32 constraints for a basic (without compression, volumes nor
* encryption) zip file according to the Zip specification:
* - No file size is larger than 4 bytes (file size < 4294967296); see
* 4.4.9 uncompressed size
* - The size of all files plus their local headers is not larger than
* 4 bytes; see 4.4.16 relative offset of local header and 4.4.24
* offset of start of central directory with respect to the starting
* disk number
* - The total number of entries (files and directories) in the zip file
* is not larger than 2 bytes (number of entries < 65536); see 4.4.22
* total number of entries in the central dir
* - The size of the central directory is not larger than 4 bytes; see
* 4.4.23 size of the central directory
*
* Due to all that, zip32 is used if the size is below 4GB and there are
* less than 65536 files; the margin between 4*1000^3 and 4*1024^3
* should give enough room for the extra zip metadata. Technically, it
* would still be possible to create an invalid zip32 file (for example,
* a zip file from files smaller than 4GB with a central directory
* larger than 4GiB), but it should not happen in the real world.
*/
if ($size < 4 * 1000 * 1000 * 1000 && $numberOfFiles < 65536) {
$this->streamerInstance = new ZipStreamer(['zip64' => true]);
} else if ($request->isUserAgent($this->preferTarFor)) {
$this->streamerInstance = new TarStreamer();
} else {
$this->streamerInstance = new ZipStreamer(['zip64' => PHP_INT_SIZE !== 4]);
}
}
/**
* Send HTTP headers
* @param string $name
*/
public function sendHeaders($name){
$extension = $this->streamerInstance instanceof ZipStreamer ? '.zip' : '.tar';
$fullName = $name . $extension;
$this->streamerInstance->sendHeaders($fullName);
}
/**
* Stream directory recursively
*
* @throws NotFoundException
* @throws NotPermittedException
* @throws InvalidPathException
*/
public function addDirRecursive(string $dir, string $internalDir = ''): void {
$dirname = basename($dir);
$rootDir = $internalDir . $dirname;
if (!empty($rootDir)) {
$this->streamerInstance->addEmptyDir($rootDir);
}
$internalDir .= $dirname . '/';
// prevent absolute dirs
$internalDir = ltrim($internalDir, '/');
$userFolder = \OC::$server->getRootFolder()->get(Filesystem::getRoot());
/** @var Folder $dirNode */
$dirNode = $userFolder->get($dir);
$files = $dirNode->getDirectoryListing();
foreach($files as $file) {
if($file instanceof File) {
try {
$fh = $file->fopen('r');
} catch (NotPermittedException $e) {
continue;
}
$this->addFileFromStream(
$fh,
$internalDir . $file->getName(),
$file->getSize(),
$file->getMTime()
);
fclose($fh);
} elseif ($file instanceof Folder) {
if($file->isReadable()) {
$this->addDirRecursive($dir . '/' . $file->getName(), $internalDir);
}
}
}
}
/**
* Add a file to the archive at the specified location and file name.
*
* @param string $stream Stream to read data from
* @param string $internalName Filepath and name to be used in the archive.
* @param int $size Filesize
* @param int|bool $time File mtime as int, or false
* @return bool $success
*/
public function addFileFromStream($stream, $internalName, $size, $time) {
$options = [];
if ($time) {
$options = [
'timestamp' => $time
];
}
if ($this->streamerInstance instanceof ZipStreamer) {
return $this->streamerInstance->addFileFromStream($stream, $internalName, $options);
} else {
return $this->streamerInstance->addFileFromStream($stream, $internalName, $size, $options);
}
}
/**
* Add an empty directory entry to the archive.
*
* @param string $dirName Directory Path and name to be added to the archive.
* @return bool $success
*/
public function addEmptyDir($dirName){
return $this->streamerInstance->addEmptyDir($dirName);
}
/**
* Close the archive.
* A closed archive can no longer have new files added to it. After
* closing, the file is completely written to the output stream.
* @return bool $success
*/
public function finalize(){
return $this->streamerInstance->finalize();
}
}

View File

@ -0,0 +1,6 @@
version: '3.9'
services:
app:
image: "epicmorg/nextcloud:23-patched"
build:
context: .

View File

@ -0,0 +1,8 @@
FROM epicmorg/nextcloud:24
##################################################################
# thank u, mac users. rolling back normal ZipStreammer
##################################################################
RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php
ADD Streamer.php /usr/src/nextcloud/lib/private/
RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php

View File

@ -0,0 +1,527 @@
# What is Nextcloud?
[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages)
[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh)
[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud)
[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud)
[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud)
[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud)
[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud)
[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud)
[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud)
[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud)
[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud)
A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.
![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg)
# How to use this image
This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from.
The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified.
The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.
[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml)
## Using the apache image
The apache image contains a webserver and exposes port 80. To start the container type:
```console
$ docker run -d -p 8080:80 nextcloud
```
Now you can access Nextcloud at http://localhost:8080/ from your host system.
## Using the fpm image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy.
If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network <NAME> ...` or a `docker-compose` file).
In both cases you don't want to map the fpm port to your host.
```console
$ docker run -d nextcloud:fpm
```
As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose).
## Using an external database
By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section.
## Persistent data
The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted.
A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud.
Nextcloud:
- `/var/www/html/` folder where all nextcloud data lives
```console
$ docker run -d \
-v nextcloud:/var/www/html \
nextcloud
```
Database:
- `/var/lib/mysql` MySQL / MariaDB Data
- `/var/lib/postgresql/data` PostgreSQL Data
```console
$ docker run -d \
-v db:/var/lib/mysql \
mariadb
```
If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps.
The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder.
Overview of the folders that can be mounted as volumes:
- `/var/www/html` Main folder, needed for updating
- `/var/www/html/custom_apps` installed / modified apps
- `/var/www/html/config` local configuration
- `/var/www/html/data` the actual data of your Nextcloud
- `/var/www/html/themes/<YOUR_CUSTOM_THEME>` theming/branding
If you want to use named volumes for all of these, it would look like this:
```console
$ docker run -d \
-v nextcloud:/var/www/html \
-v apps:/var/www/html/custom_apps \
-v config:/var/www/html/config \
-v data:/var/www/html/data \
-v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME> \
nextcloud
```
## Using the Nextcloud command-line interface
To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command):
```console
$ docker exec --user www-data CONTAINER_ID php occ
```
or for docker-compose:
```console
$ docker-compose exec --user www-data app php occ
```
## Auto configuration via environment variables
The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type!
__SQLite__:
- `SQLITE_DATABASE` Name of the database using sqlite
__MYSQL/MariaDB__:
- `MYSQL_DATABASE` Name of the database using mysql / mariadb.
- `MYSQL_USER` Username for the database using mysql / mariadb.
- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb.
- `MYSQL_HOST` Hostname of the database server using mysql / mariadb.
__PostgreSQL__:
- `POSTGRES_DB` Name of the database using postgres.
- `POSTGRES_USER` Username for the database using postgres.
- `POSTGRES_PASSWORD` Password for the database user using postgres.
- `POSTGRES_HOST` Hostname of the database server using postgres.
If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):
- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user.
- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user.
If you want, you can set the data directory, otherwise default value will be used.
- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users.
One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install.
- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains
The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with
- `NEXTCLOUD_UPDATE` (default: _0_)
If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters:
- `REDIS_HOST` (not set by default) Name of Redis container
- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports.
- `REDIS_HOST_PASSWORD` (not set by default) Redis password
The use of Redis is recommended to prevent file locking problems. See the examples for further instructions.
To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add:
- `SMTP_HOST` (not set by default): The hostname of the SMTP server.
- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS.
- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS.
- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required.
- `SMTP_NAME` (empty by default): The username for the authentication.
- `SMTP_PASSWORD` (empty by default): The password for the authentication.
- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud.
- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP.
To use an external S3 compatible object store as primary storage, set the following variables:
- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server
- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in
- `OBJECTSTORE_S3_KEY`: AWS style access key
- `OBJECTSTORE_S3_SECRET`: AWS style secret access key
- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over
- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server
- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in.
- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information.
To use an external OpenStack Swift object store as primary storage, set the following variables:
- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint
- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container
- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username
- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password
- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain
- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name
- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain
- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name
- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region
- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information.
## Using the apache image behind a reverse proxy and auto configure server host and protocol
The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`.
- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip.
- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4.
If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters.
- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port.
- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https.
- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy.
- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address.
Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details.
Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together.
# Running this image with docker-compose
The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for.
At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information.
## Base version - apache
This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
## Base version - FPM
When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples).
As this setup does **not include encryption**, it should be run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
web:
image: nginx
ports:
- 8080:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
# Docker Secrets
As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/<secret_name> files. For example:
```yaml
version: '3.2'
services:
db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
secrets:
- postgres_db
- postgres_password
- postgres_user
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
- NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user
depends_on:
- db
secrets:
- nextcloud_admin_password
- nextcloud_admin_user
- postgres_db
- postgres_password
- postgres_user
volumes:
db:
nextcloud:
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password.txt # put admin password to this file
nextcloud_admin_user:
file: ./nextcloud_admin_user.txt # put admin username to this file
postgres_db:
file: ./postgres_db.txt # put postgresql db name to this file
postgres_password:
file: ./postgres_password.txt # put postgresql password to this file
postgres_user:
file: ./postgres_user.txt # put postgresql username to this file
```
Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`.
# Make your Nextcloud available from the internet
Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory.
## HTTPS - SSL encryption
There are many different possibilities to introduce encryption depending on your setup.
We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you.
In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup.
# First use
When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file.
# Update to a newer version
Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one.
**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.**
Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected.
```console
$ docker pull nextcloud
$ docker stop <your_nextcloud_container>
$ docker rm <your_nextcloud_container>
$ docker run <OPTIONS> -d nextcloud
```
Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping.
When using docker-compose your compose file takes care of your configuration, so you just have to run:
```console
$ docker-compose pull
$ docker-compose up -d
```
# Adding Features
A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it.
Start your derived image with the `FROM` statement and add whatever you like.
```yaml
FROM nextcloud:apache
RUN ...
```
The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication.
If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file)
```yaml
app:
build: .
links:
- db
volumes:
- data:/var/www/html/data
- config:/var/www/html/config
- apps:/var/www/html/apps
restart: always
```
If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work.
```yaml
FROM nextcloud:apache
...
ENV NEXTCLOUD_UPDATE=1
CMD ["/usr/bin/supervisord"]
```
**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run:
```console
docker build -t your-name --pull .
docker run -d your-name
```
or for docker-compose:
```console
docker-compose build --pull
docker-compose up -d
```
The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image.
# Migrating an existing installation
You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for:
1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there.
2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container)
- To import from a MySQL dump use the following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp"
docker-compose exec db rm /dmp
```
- To import from a PostgreSQL dump use to following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp"
docker-compose exec db rm /dmp
```
3. Edit your config.php
1. Set database connection
- In case of MySQL database
```php
'dbhost' => 'db:3306',
```
- In case of PostgreSQL database
```php
'dbhost' => 'db:5432',
```
2. Make sure you have no configuration for the `apps_paths`. Delete lines like these
```diff
- "apps_paths" => array (
- 0 => array (
- "path" => OC::$SERVERROOT."/apps",
- "url" => "/apps",
- "writable" => true,
- ),
```
3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable
```php
'apps_paths' => array (
0 => array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
```
4. Make sure your data directory is set to /var/www/html/data
```php
'datadirectory' => '/var/www/html/data',
```
4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container):
```console
docker cp ./data/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/data
docker cp ./theming/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/theming
docker cp ./config/config.php nextcloud_app_1:/var/www/html/config
docker-compose exec app chown -R www-data:www-data /var/www/html/config
```
5. Copy only the custom apps you use (or simply redownload them from the web interface):
```console
docker cp ./custom_apps/ nextcloud_data:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps
```
# Questions / Issues
If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue.

View File

@ -0,0 +1,190 @@
<?php
/**
*
*
* FIXED ZipStreammer to 64bit. 1) https://github.com/nextcloud/server/pull/15367
* 2) https://github.com/artonge/server/commit/435022515de1983f0fe3d3116acb71a0ed439693
*
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Daniel Calviño Sánchez <danxuliu@gmail.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Victor Dubiniuk <dubiniuk@owncloud.com>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
namespace OC;
use OC\Files\Filesystem;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\IRequest;
use ownCloud\TarStreamer\TarStreamer;
use ZipStreamer\ZipStreamer;
class Streamer {
// array of regexp. Matching user agents will get tar instead of zip
private $preferTarFor = [ '/macintosh|mac os x/i' ];
// streamer instance
private $streamerInstance;
/**
* Streamer constructor.
*
* @param IRequest $request
* @param int $size The size of the files in bytes
* @param int $numberOfFiles The number of files (and directories) that will
* be included in the streamed file
*/
public function __construct(IRequest $request, $size, int $numberOfFiles){
/**
* zip32 constraints for a basic (without compression, volumes nor
* encryption) zip file according to the Zip specification:
* - No file size is larger than 4 bytes (file size < 4294967296); see
* 4.4.9 uncompressed size
* - The size of all files plus their local headers is not larger than
* 4 bytes; see 4.4.16 relative offset of local header and 4.4.24
* offset of start of central directory with respect to the starting
* disk number
* - The total number of entries (files and directories) in the zip file
* is not larger than 2 bytes (number of entries < 65536); see 4.4.22
* total number of entries in the central dir
* - The size of the central directory is not larger than 4 bytes; see
* 4.4.23 size of the central directory
*
* Due to all that, zip32 is used if the size is below 4GB and there are
* less than 65536 files; the margin between 4*1000^3 and 4*1024^3
* should give enough room for the extra zip metadata. Technically, it
* would still be possible to create an invalid zip32 file (for example,
* a zip file from files smaller than 4GB with a central directory
* larger than 4GiB), but it should not happen in the real world.
*/
if ($size < 4 * 1000 * 1000 * 1000 && $numberOfFiles < 65536) {
$this->streamerInstance = new ZipStreamer(['zip64' => true]);
} else if ($request->isUserAgent($this->preferTarFor)) {
$this->streamerInstance = new TarStreamer();
} else {
$this->streamerInstance = new ZipStreamer(['zip64' => PHP_INT_SIZE !== 4]);
}
}
/**
* Send HTTP headers
* @param string $name
*/
public function sendHeaders($name){
$extension = $this->streamerInstance instanceof ZipStreamer ? '.zip' : '.tar';
$fullName = $name . $extension;
$this->streamerInstance->sendHeaders($fullName);
}
/**
* Stream directory recursively
*
* @throws NotFoundException
* @throws NotPermittedException
* @throws InvalidPathException
*/
public function addDirRecursive(string $dir, string $internalDir = ''): void {
$dirname = basename($dir);
$rootDir = $internalDir . $dirname;
if (!empty($rootDir)) {
$this->streamerInstance->addEmptyDir($rootDir);
}
$internalDir .= $dirname . '/';
// prevent absolute dirs
$internalDir = ltrim($internalDir, '/');
$userFolder = \OC::$server->getRootFolder()->get(Filesystem::getRoot());
/** @var Folder $dirNode */
$dirNode = $userFolder->get($dir);
$files = $dirNode->getDirectoryListing();
foreach($files as $file) {
if($file instanceof File) {
try {
$fh = $file->fopen('r');
} catch (NotPermittedException $e) {
continue;
}
$this->addFileFromStream(
$fh,
$internalDir . $file->getName(),
$file->getSize(),
$file->getMTime()
);
fclose($fh);
} elseif ($file instanceof Folder) {
if($file->isReadable()) {
$this->addDirRecursive($dir . '/' . $file->getName(), $internalDir);
}
}
}
}
/**
* Add a file to the archive at the specified location and file name.
*
* @param string $stream Stream to read data from
* @param string $internalName Filepath and name to be used in the archive.
* @param int $size Filesize
* @param int|bool $time File mtime as int, or false
* @return bool $success
*/
public function addFileFromStream($stream, $internalName, $size, $time) {
$options = [];
if ($time) {
$options = [
'timestamp' => $time
];
}
if ($this->streamerInstance instanceof ZipStreamer) {
return $this->streamerInstance->addFileFromStream($stream, $internalName, $options);
} else {
return $this->streamerInstance->addFileFromStream($stream, $internalName, $size, $options);
}
}
/**
* Add an empty directory entry to the archive.
*
* @param string $dirName Directory Path and name to be added to the archive.
* @return bool $success
*/
public function addEmptyDir($dirName){
return $this->streamerInstance->addEmptyDir($dirName);
}
/**
* Close the archive.
* A closed archive can no longer have new files added to it. After
* closing, the file is completely written to the output stream.
* @return bool $success
*/
public function finalize(){
return $this->streamerInstance->finalize();
}
}

View File

@ -0,0 +1,6 @@
version: '3.9'
services:
app:
image: "epicmorg/nextcloud:24-patched"
build:
context: .

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -0,0 +1,68 @@
FROM nextcloud:23
ENV DEBIAN_FRONTEND noninteractive
##################################################################
# adding normal sources list
##################################################################
RUN rm /etc/apt/sources.list
COPY sources.list /etc/apt/sources.list
##################################################################
# adding some utils
##################################################################
RUN apt update -y && \
apt dist-upgrade -y && \
apt install -y --allow-unauthenticated \
apt-transport-https \
curl \
ca-certificates \
ghostscript \
nload \
htop \
mc \
nano \
sudo \
imagemagick \
imagemagick-common \
sqlite3 \
smbclient \
libsmbclient \
wget \
net-tools \
iputils-ping
##################################################################
# installing php repo + smbclient
##################################################################
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list'
RUN apt update -y && \
apt install -y --allow-unauthenticated \
libsmbclient-dev \
libmagickwand-dev \
libmagickcore-dev \
libc-client-dev \
libkrb5-dev \
libsqlite3-dev \
libssl-dev
RUN pecl install inotify && \
docker-php-ext-enable inotify
RUN pecl install smbclient && \
docker-php-ext-enable smbclient
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install imap && \
docker-php-ext-enable imap
RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \
docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite
##################################################################
# smb fix
##################################################################
RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf
ADD smb.conf /etc/samba/
ADD smb.conf /usr/share/samba/

View File

@ -0,0 +1,527 @@
# What is Nextcloud?
[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages)
[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh)
[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud)
[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud)
[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud)
[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud)
[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud)
[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud)
[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud)
[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud)
[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud)
A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.
![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg)
# How to use this image
This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from.
The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified.
The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.
[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml)
## Using the apache image
The apache image contains a webserver and exposes port 80. To start the container type:
```console
$ docker run -d -p 8080:80 nextcloud
```
Now you can access Nextcloud at http://localhost:8080/ from your host system.
## Using the fpm image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy.
If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network <NAME> ...` or a `docker-compose` file).
In both cases you don't want to map the fpm port to your host.
```console
$ docker run -d nextcloud:fpm
```
As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose).
## Using an external database
By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section.
## Persistent data
The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted.
A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud.
Nextcloud:
- `/var/www/html/` folder where all nextcloud data lives
```console
$ docker run -d \
-v nextcloud:/var/www/html \
nextcloud
```
Database:
- `/var/lib/mysql` MySQL / MariaDB Data
- `/var/lib/postgresql/data` PostgreSQL Data
```console
$ docker run -d \
-v db:/var/lib/mysql \
mariadb
```
If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps.
The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder.
Overview of the folders that can be mounted as volumes:
- `/var/www/html` Main folder, needed for updating
- `/var/www/html/custom_apps` installed / modified apps
- `/var/www/html/config` local configuration
- `/var/www/html/data` the actual data of your Nextcloud
- `/var/www/html/themes/<YOUR_CUSTOM_THEME>` theming/branding
If you want to use named volumes for all of these, it would look like this:
```console
$ docker run -d \
-v nextcloud:/var/www/html \
-v apps:/var/www/html/custom_apps \
-v config:/var/www/html/config \
-v data:/var/www/html/data \
-v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME> \
nextcloud
```
## Using the Nextcloud command-line interface
To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command):
```console
$ docker exec --user www-data CONTAINER_ID php occ
```
or for docker-compose:
```console
$ docker-compose exec --user www-data app php occ
```
## Auto configuration via environment variables
The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type!
__SQLite__:
- `SQLITE_DATABASE` Name of the database using sqlite
__MYSQL/MariaDB__:
- `MYSQL_DATABASE` Name of the database using mysql / mariadb.
- `MYSQL_USER` Username for the database using mysql / mariadb.
- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb.
- `MYSQL_HOST` Hostname of the database server using mysql / mariadb.
__PostgreSQL__:
- `POSTGRES_DB` Name of the database using postgres.
- `POSTGRES_USER` Username for the database using postgres.
- `POSTGRES_PASSWORD` Password for the database user using postgres.
- `POSTGRES_HOST` Hostname of the database server using postgres.
If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):
- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user.
- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user.
If you want, you can set the data directory, otherwise default value will be used.
- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users.
One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install.
- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains
The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with
- `NEXTCLOUD_UPDATE` (default: _0_)
If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters:
- `REDIS_HOST` (not set by default) Name of Redis container
- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports.
- `REDIS_HOST_PASSWORD` (not set by default) Redis password
The use of Redis is recommended to prevent file locking problems. See the examples for further instructions.
To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add:
- `SMTP_HOST` (not set by default): The hostname of the SMTP server.
- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS.
- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS.
- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required.
- `SMTP_NAME` (empty by default): The username for the authentication.
- `SMTP_PASSWORD` (empty by default): The password for the authentication.
- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud.
- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP.
To use an external S3 compatible object store as primary storage, set the following variables:
- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server
- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in
- `OBJECTSTORE_S3_KEY`: AWS style access key
- `OBJECTSTORE_S3_SECRET`: AWS style secret access key
- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over
- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server
- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in.
- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information.
To use an external OpenStack Swift object store as primary storage, set the following variables:
- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint
- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container
- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username
- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password
- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain
- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name
- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain
- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name
- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region
- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information.
## Using the apache image behind a reverse proxy and auto configure server host and protocol
The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`.
- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip.
- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4.
If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters.
- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port.
- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https.
- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy.
- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address.
Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details.
Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together.
# Running this image with docker-compose
The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for.
At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information.
## Base version - apache
This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
## Base version - FPM
When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples).
As this setup does **not include encryption**, it should be run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
web:
image: nginx
ports:
- 8080:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
# Docker Secrets
As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/<secret_name> files. For example:
```yaml
version: '3.2'
services:
db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
secrets:
- postgres_db
- postgres_password
- postgres_user
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
- NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user
depends_on:
- db
secrets:
- nextcloud_admin_password
- nextcloud_admin_user
- postgres_db
- postgres_password
- postgres_user
volumes:
db:
nextcloud:
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password.txt # put admin password to this file
nextcloud_admin_user:
file: ./nextcloud_admin_user.txt # put admin username to this file
postgres_db:
file: ./postgres_db.txt # put postgresql db name to this file
postgres_password:
file: ./postgres_password.txt # put postgresql password to this file
postgres_user:
file: ./postgres_user.txt # put postgresql username to this file
```
Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`.
# Make your Nextcloud available from the internet
Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory.
## HTTPS - SSL encryption
There are many different possibilities to introduce encryption depending on your setup.
We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you.
In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup.
# First use
When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file.
# Update to a newer version
Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one.
**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.**
Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected.
```console
$ docker pull nextcloud
$ docker stop <your_nextcloud_container>
$ docker rm <your_nextcloud_container>
$ docker run <OPTIONS> -d nextcloud
```
Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping.
When using docker-compose your compose file takes care of your configuration, so you just have to run:
```console
$ docker-compose pull
$ docker-compose up -d
```
# Adding Features
A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it.
Start your derived image with the `FROM` statement and add whatever you like.
```yaml
FROM nextcloud:apache
RUN ...
```
The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication.
If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file)
```yaml
app:
build: .
links:
- db
volumes:
- data:/var/www/html/data
- config:/var/www/html/config
- apps:/var/www/html/apps
restart: always
```
If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work.
```yaml
FROM nextcloud:apache
...
ENV NEXTCLOUD_UPDATE=1
CMD ["/usr/bin/supervisord"]
```
**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run:
```console
docker build -t your-name --pull .
docker run -d your-name
```
or for docker-compose:
```console
docker-compose build --pull
docker-compose up -d
```
The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image.
# Migrating an existing installation
You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for:
1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there.
2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container)
- To import from a MySQL dump use the following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp"
docker-compose exec db rm /dmp
```
- To import from a PostgreSQL dump use to following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp"
docker-compose exec db rm /dmp
```
3. Edit your config.php
1. Set database connection
- In case of MySQL database
```php
'dbhost' => 'db:3306',
```
- In case of PostgreSQL database
```php
'dbhost' => 'db:5432',
```
2. Make sure you have no configuration for the `apps_paths`. Delete lines like these
```diff
- "apps_paths" => array (
- 0 => array (
- "path" => OC::$SERVERROOT."/apps",
- "url" => "/apps",
- "writable" => true,
- ),
```
3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable
```php
'apps_paths' => array (
0 => array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
```
4. Make sure your data directory is set to /var/www/html/data
```php
'datadirectory' => '/var/www/html/data',
```
4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container):
```console
docker cp ./data/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/data
docker cp ./theming/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/theming
docker cp ./config/config.php nextcloud_app_1:/var/www/html/config
docker-compose exec app chown -R www-data:www-data /var/www/html/config
```
5. Copy only the custom apps you use (or simply redownload them from the web interface):
```console
docker cp ./custom_apps/ nextcloud_data:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps
```
# Questions / Issues
If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue.

View File

@ -0,0 +1,6 @@
version: '3.9'
services:
app:
image: "epicmorg/nextcloud:23"
build:
context: .

View File

@ -0,0 +1,239 @@
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
# - When such options are commented with ";", the proposed setting
# differs from the default Samba behaviour
# - When commented with "#", the proposed setting is the default
# behaviour of Samba but the option is considered important
# enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#======================= Global Settings =======================
[global]
client min protocol = SMB2
client max protocol = SMB3
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m
# Cap the size of the individual log files (in KiB).
max log size = 1000
# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
# Append syslog@1 if you want important messages to be sent to syslog too.
logging = file
# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone server" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user
########## Domains ###########
#
# The following settings only takes effect if 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# or 'domain logons' is set
#
# It specifies the location of the user's
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
# logon path = \\%N\%U\profile
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
# logon home = \\%N\%U
# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd
# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a "machines" group exists on the system
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup --force-badname %g
############ Misc ############
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
; idmap config * : backend = tdb
; idmap config * : range = 3000-7999
; idmap config YOURDOMAINHERE : backend = tdb
; idmap config YOURDOMAINHERE : range = 100000-999999
; template shell = /bin/bash
# Setup usershare options to enable non-root users to share folders
# with the net usershare command.
# Maximum number of usershare. 0 means that usershare is disabled.
# usershare max shares = 100
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = yes
#======================= Share Definitions =======================
[homes]
comment = Home Directories
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = yes
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only "username" can connect
# to \\server\username
# This might need tweaking when using external authentication schemes
valid users = %S
# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
; write list = root, @lpadmin

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -0,0 +1,68 @@
FROM nextcloud:24
ENV DEBIAN_FRONTEND noninteractive
##################################################################
# adding normal sources list
##################################################################
RUN rm /etc/apt/sources.list
COPY sources.list /etc/apt/sources.list
##################################################################
# adding some utils
##################################################################
RUN apt update -y && \
apt dist-upgrade -y && \
apt install -y --allow-unauthenticated \
apt-transport-https \
curl \
ca-certificates \
ghostscript \
nload \
htop \
mc \
nano \
sudo \
imagemagick \
imagemagick-common \
sqlite3 \
smbclient \
libsmbclient \
wget \
net-tools \
iputils-ping
##################################################################
# installing php repo + smbclient
##################################################################
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list'
RUN apt update -y && \
apt install -y --allow-unauthenticated \
libsmbclient-dev \
libmagickwand-dev \
libmagickcore-dev \
libc-client-dev \
libkrb5-dev \
libsqlite3-dev \
libssl-dev
RUN pecl install inotify && \
docker-php-ext-enable inotify
RUN pecl install smbclient && \
docker-php-ext-enable smbclient
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install imap && \
docker-php-ext-enable imap
RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \
docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite
##################################################################
# smb fix
##################################################################
RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf
ADD smb.conf /etc/samba/
ADD smb.conf /usr/share/samba/

View File

@ -0,0 +1,527 @@
# What is Nextcloud?
[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages)
[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh)
[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud)
[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud)
[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud)
[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud)
[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud)
[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud)
[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud)
[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud)
[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud)
A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.
![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg)
# How to use this image
This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from.
The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified.
The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.
[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml)
## Using the apache image
The apache image contains a webserver and exposes port 80. To start the container type:
```console
$ docker run -d -p 8080:80 nextcloud
```
Now you can access Nextcloud at http://localhost:8080/ from your host system.
## Using the fpm image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy.
If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network <NAME> ...` or a `docker-compose` file).
In both cases you don't want to map the fpm port to your host.
```console
$ docker run -d nextcloud:fpm
```
As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose).
## Using an external database
By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section.
## Persistent data
The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted.
A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud.
Nextcloud:
- `/var/www/html/` folder where all nextcloud data lives
```console
$ docker run -d \
-v nextcloud:/var/www/html \
nextcloud
```
Database:
- `/var/lib/mysql` MySQL / MariaDB Data
- `/var/lib/postgresql/data` PostgreSQL Data
```console
$ docker run -d \
-v db:/var/lib/mysql \
mariadb
```
If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps.
The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder.
Overview of the folders that can be mounted as volumes:
- `/var/www/html` Main folder, needed for updating
- `/var/www/html/custom_apps` installed / modified apps
- `/var/www/html/config` local configuration
- `/var/www/html/data` the actual data of your Nextcloud
- `/var/www/html/themes/<YOUR_CUSTOM_THEME>` theming/branding
If you want to use named volumes for all of these, it would look like this:
```console
$ docker run -d \
-v nextcloud:/var/www/html \
-v apps:/var/www/html/custom_apps \
-v config:/var/www/html/config \
-v data:/var/www/html/data \
-v theme:/var/www/html/themes/<YOUR_CUSTOM_THEME> \
nextcloud
```
## Using the Nextcloud command-line interface
To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command):
```console
$ docker exec --user www-data CONTAINER_ID php occ
```
or for docker-compose:
```console
$ docker-compose exec --user www-data app php occ
```
## Auto configuration via environment variables
The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type!
__SQLite__:
- `SQLITE_DATABASE` Name of the database using sqlite
__MYSQL/MariaDB__:
- `MYSQL_DATABASE` Name of the database using mysql / mariadb.
- `MYSQL_USER` Username for the database using mysql / mariadb.
- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb.
- `MYSQL_HOST` Hostname of the database server using mysql / mariadb.
__PostgreSQL__:
- `POSTGRES_DB` Name of the database using postgres.
- `POSTGRES_USER` Username for the database using postgres.
- `POSTGRES_PASSWORD` Password for the database user using postgres.
- `POSTGRES_HOST` Hostname of the database server using postgres.
If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):
- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user.
- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user.
If you want, you can set the data directory, otherwise default value will be used.
- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users.
One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install.
- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains
The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with
- `NEXTCLOUD_UPDATE` (default: _0_)
If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters:
- `REDIS_HOST` (not set by default) Name of Redis container
- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports.
- `REDIS_HOST_PASSWORD` (not set by default) Redis password
The use of Redis is recommended to prevent file locking problems. See the examples for further instructions.
To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add:
- `SMTP_HOST` (not set by default): The hostname of the SMTP server.
- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS.
- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS.
- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required.
- `SMTP_NAME` (empty by default): The username for the authentication.
- `SMTP_PASSWORD` (empty by default): The password for the authentication.
- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud.
- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP.
To use an external S3 compatible object store as primary storage, set the following variables:
- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server
- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in
- `OBJECTSTORE_S3_KEY`: AWS style access key
- `OBJECTSTORE_S3_SECRET`: AWS style secret access key
- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over
- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server
- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in.
- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information.
To use an external OpenStack Swift object store as primary storage, set the following variables:
- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint
- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container
- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username
- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password
- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain
- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name
- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain
- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name
- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region
- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in
Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information.
## Using the apache image behind a reverse proxy and auto configure server host and protocol
The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`.
- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip.
- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4.
If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters.
- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port.
- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https.
- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy.
- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address.
Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details.
Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together.
# Running this image with docker-compose
The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for.
At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information.
## Base version - apache
This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
## Base version - FPM
When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples).
As this setup does **not include encryption**, it should be run behind a proxy.
Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup.
```yaml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
web:
image: nginx
ports:
- 8080:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
restart: always
```
Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system.
# Docker Secrets
As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/<secret_name> files. For example:
```yaml
version: '3.2'
services:
db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
secrets:
- postgres_db
- postgres_password
- postgres_user
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
- NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user
depends_on:
- db
secrets:
- nextcloud_admin_password
- nextcloud_admin_user
- postgres_db
- postgres_password
- postgres_user
volumes:
db:
nextcloud:
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password.txt # put admin password to this file
nextcloud_admin_user:
file: ./nextcloud_admin_user.txt # put admin username to this file
postgres_db:
file: ./postgres_db.txt # put postgresql db name to this file
postgres_password:
file: ./postgres_password.txt # put postgresql password to this file
postgres_user:
file: ./postgres_user.txt # put postgresql username to this file
```
Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`.
# Make your Nextcloud available from the internet
Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory.
## HTTPS - SSL encryption
There are many different possibilities to introduce encryption depending on your setup.
We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you.
In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup.
# First use
When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file.
# Update to a newer version
Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one.
**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.**
Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected.
```console
$ docker pull nextcloud
$ docker stop <your_nextcloud_container>
$ docker rm <your_nextcloud_container>
$ docker run <OPTIONS> -d nextcloud
```
Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping.
When using docker-compose your compose file takes care of your configuration, so you just have to run:
```console
$ docker-compose pull
$ docker-compose up -d
```
# Adding Features
A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it.
Start your derived image with the `FROM` statement and add whatever you like.
```yaml
FROM nextcloud:apache
RUN ...
```
The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication.
If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file)
```yaml
app:
build: .
links:
- db
volumes:
- data:/var/www/html/data
- config:/var/www/html/config
- apps:/var/www/html/apps
restart: always
```
If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work.
```yaml
FROM nextcloud:apache
...
ENV NEXTCLOUD_UPDATE=1
CMD ["/usr/bin/supervisord"]
```
**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run:
```console
docker build -t your-name --pull .
docker run -d your-name
```
or for docker-compose:
```console
docker-compose build --pull
docker-compose up -d
```
The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image.
# Migrating an existing installation
You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for:
1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there.
2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container)
- To import from a MySQL dump use the following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp"
docker-compose exec db rm /dmp
```
- To import from a PostgreSQL dump use to following commands
```console
docker cp ./database.dmp nextcloud_db_1:/dmp
docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp"
docker-compose exec db rm /dmp
```
3. Edit your config.php
1. Set database connection
- In case of MySQL database
```php
'dbhost' => 'db:3306',
```
- In case of PostgreSQL database
```php
'dbhost' => 'db:5432',
```
2. Make sure you have no configuration for the `apps_paths`. Delete lines like these
```diff
- "apps_paths" => array (
- 0 => array (
- "path" => OC::$SERVERROOT."/apps",
- "url" => "/apps",
- "writable" => true,
- ),
```
3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable
```php
'apps_paths' => array (
0 => array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 => array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
```
4. Make sure your data directory is set to /var/www/html/data
```php
'datadirectory' => '/var/www/html/data',
```
4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container):
```console
docker cp ./data/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/data
docker cp ./theming/ nextcloud_app_1:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/theming
docker cp ./config/config.php nextcloud_app_1:/var/www/html/config
docker-compose exec app chown -R www-data:www-data /var/www/html/config
```
5. Copy only the custom apps you use (or simply redownload them from the web interface):
```console
docker cp ./custom_apps/ nextcloud_data:/var/www/html/
docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps
```
# Questions / Issues
If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue.

View File

@ -0,0 +1,6 @@
version: '3.9'
services:
app:
image: "epicmorg/nextcloud:24"
build:
context: .

View File

@ -0,0 +1,239 @@
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
# - When such options are commented with ";", the proposed setting
# differs from the default Samba behaviour
# - When commented with "#", the proposed setting is the default
# behaviour of Samba but the option is considered important
# enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#======================= Global Settings =======================
[global]
client min protocol = SMB2
client max protocol = SMB3
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m
# Cap the size of the individual log files (in KiB).
max log size = 1000
# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
# Append syslog@1 if you want important messages to be sent to syslog too.
logging = file
# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone server" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user
########## Domains ###########
#
# The following settings only takes effect if 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# or 'domain logons' is set
#
# It specifies the location of the user's
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
# logon path = \\%N\%U\profile
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
# logon home = \\%N\%U
# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd
# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a "machines" group exists on the system
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup --force-badname %g
############ Misc ############
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
; idmap config * : backend = tdb
; idmap config * : range = 3000-7999
; idmap config YOURDOMAINHERE : backend = tdb
; idmap config YOURDOMAINHERE : range = 100000-999999
; template shell = /bin/bash
# Setup usershare options to enable non-root users to share folders
# with the net usershare command.
# Maximum number of usershare. 0 means that usershare is disabled.
# usershare max shares = 100
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = yes
#======================= Share Definitions =======================
[homes]
comment = Home Directories
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = yes
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only "username" can connect
# to \\server\username
# This might need tweaking when using external authentication schemes
valid users = %S
# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
; write list = root, @lpadmin

View File

@ -0,0 +1,28 @@
#main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia
#deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
#deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
#deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
#deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -1,21 +1,28 @@
#main #main
deb http://httpredir.debian.org/debian/ bullseye main contrib non-free deb http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-backports-sloppy main contrib non-free
deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free
#security #security
deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free
##multimedia ##multimedia
# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free
# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main
# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main #deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main

View File

@ -12,7 +12,7 @@ COPY locale.gen /etc/locale.gen
################################################################## ##################################################################
# perforce client binary # perforce client binary
################################################################## ##################################################################
ARG P4_VERSION=r20.1 ARG P4_VERSION=r21.2
ARG P4_DOWNLOAD_URL=http://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4 ARG P4_DOWNLOAD_URL=http://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4
################################################################## ##################################################################
@ -64,6 +64,10 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
util-linux \ util-linux \
uuid-runtime \ uuid-runtime \
wget \ wget \
zip && \ zip
wget -nv --random-wait -c -P /usr/bin ${P4_DOWNLOAD_URL} && \
##################################################################
# Install p4client
##################################################################
RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue -P /usr/bin ${P4_DOWNLOAD_URL} && \
chmod +x /usr/bin/p4 chmod +x /usr/bin/p4

View File

@ -11,12 +11,41 @@ ARG DEBIAN_FRONTEND=noninteractive
################################################################## ##################################################################
ENV BuildDocker true ENV BuildDocker true
##################################################################
# Android SDK
##################################################################
ENV ANDROID_HOME=/usr/lib/android-sdk ENV ANDROID_HOME=/usr/lib/android-sdk
ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk
ENV GRADLE_VERSION=7.4.2
ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
ENV GRADLE_ROOT=/opt/gradle
ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
ENV GRADLE_BIN=$GRADLE_PATH/bin
ARG GRADLE_TEMP=/tmp/gradle.zip
ENV KTC_VERSION=1.6.21
ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
ARG KTC_TEMP=/tmp/kotlinc.tgz
ENV KTC_ROOT=/opt/kotlin
ENV KTC_PATH=${KTC_ROOT}/kotlinc
ENV KTC_BIN=$KTC_PATH/bin
ENV PATH=PATH=$PATH:$GRADLE_BIN:${KTC_BIN}
##################################################################
# installing java11
##################################################################
RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \
echo 'deb https://packages.adoptium.net/artifactory/deb focal main' > /etc/apt/sources.list.d/temurin-official.list && \
apt-get update && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated temurin-11-jdk && \
mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \
ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \
ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \
java -version
##################################################################
# Android SDK
##################################################################
RUN apt update && \ RUN apt update && \
apt install -y --allow-unauthenticated \ apt install -y --allow-unauthenticated \
android-sdk \ android-sdk \
@ -29,33 +58,22 @@ RUN apt update && \
RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license
################################################################## ##################################################################
# SDKMAN # GRADLE
################################################################## ##################################################################
#USER root RUN mkdir -p $GRADLE_PATH
#RUN export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io?rcupdate=false" | bash RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue $GRADLE_LINK -O $GRADLE_TEMP
RUN export SDKMAN_DIR="/config/.sdkman" && curl -s "https://get.sdkman.io" | bash RUN 7zz x $GRADLE_TEMP -o$GRADLE_ROOT
RUN chmod +x -R $GRADLE_BIN
RUN gradle -v
################################################################## ##################################################################
# Gradle # KOTLIN
################################################################## ##################################################################
RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install gradle;" RUN mkdir -p ${KTC_PATH}
RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue ${KTC_LINK} -O ${KTC_TEMP}
################################################################## RUN 7zz x $KTC_TEMP -o$KTC_ROOT
# Kotlin RUN chmod +x -R ${KTC_BIN}
################################################################## RUN kotlinc -version
RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install kotlin;"
##################################################################
# installing java11
##################################################################
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ focal main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \
apt-get update && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \
mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib
################################################################## ##################################################################
# cleaninig up # cleaninig up

View File

@ -0,0 +1,312 @@
#!/bin/bash
#
# Copyright 2017 Marco Vermeulen
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# install:- channel: stable; cliVersion: 5.15.0; cliNativeVersion: NA; api: https://api.sdkman.io/2
# Global variables
SDKMAN_SERVICE="https://api.sdkman.io/2"
SDKMAN_VERSION="5.15.0"
SDKMAN_PLATFORM=$(uname)
if [ -z "$SDKMAN_DIR" ]; then
SDKMAN_DIR="$HOME/.sdkman"
SDKMAN_DIR_RAW='$HOME/.sdkman'
else
SDKMAN_DIR_RAW="$SDKMAN_DIR"
fi
# Local variables
sdkman_tmp_folder="${SDKMAN_DIR}/tmp"
sdkman_zip_file="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}.zip"
sdkman_zip_base_folder="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}"
sdkman_ext_folder="${SDKMAN_DIR}/ext"
sdkman_etc_folder="${SDKMAN_DIR}/etc"
sdkman_var_folder="${SDKMAN_DIR}/var"
sdkman_archives_folder="${SDKMAN_DIR}/archives"
sdkman_candidates_folder="${SDKMAN_DIR}/candidates"
sdkman_config_file="${sdkman_etc_folder}/config"
sdkman_bash_profile="${HOME}/.bash_profile"
sdkman_profile="${HOME}/.profile"
sdkman_bashrc="${HOME}/.bashrc"
sdkman_zshrc="${ZDOTDIR:-${HOME}}/.zshrc"
sdkman_init_snippet=$( cat << EOF
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$SDKMAN_DIR_RAW"
[[ -s "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh"
EOF
)
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
solaris=false;
freebsd=false;
case "$(uname)" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
SunOS*)
solaris=true
;;
FreeBSD*)
freebsd=true
esac
echo ''
echo ' -+syyyyyyys:'
echo ' `/yho:` -yd.'
echo ' `/yh/` +m.'
echo ' .oho. hy .`'
echo ' .sh/` :N` `-/o` `+dyyo:.'
echo ' .yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+'
echo ' .sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.'
echo ' `od/` `N- -/oM- ddd+` `sd: hNNm -N:'
echo ' :do` .M. dMMM- `ms. /d+` `NMMs `do'
echo ' .yy- :N` ```mMMM. - -hy. /MMM: yh'
echo ' `+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.'
echo ' -dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/'
echo ' `oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy'
echo ' .hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.'
echo ' :mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do'
echo ' /NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.'
echo ' /NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs'
echo ' -NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.'
echo ' `mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh'
echo ' +MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-'
echo ' mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo'
echo ' MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`'
echo ' dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/'
echo ' .dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`'
echo ' `/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh'
echo ' `.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.'
echo ' /moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:'
echo ' /+m: `.-:::-` /d+ +MMMMMMMNh:`'
echo ' +MN/ -yh. `+hddhy+.'
echo ' /MM+ .sh:'
echo ' :NMo -sh/'
echo ' -NMs `/yy:'
echo ' .NMy `:sh+.'
echo ' `mMm` ./yds-'
echo ' `dMMMmyo:-.````.-:oymNy:`'
echo ' +NMMMMMMMMMMMMMMMMms:`'
echo ' -+shmNMMMNmdy+:`'
echo ''
echo ''
echo ' Now attempting installation...'
echo ''
echo ''
# Sanity checks
echo "Looking for a previous installation of SDKMAN..."
if [ -d "$SDKMAN_DIR" ]; then
echo "SDKMAN found."
echo ""
echo "======================================================================================================"
echo " You already have SDKMAN installed."
echo " SDKMAN was found at:"
echo ""
echo " ${SDKMAN_DIR}"
echo ""
echo " Please consider running the following if you need to upgrade."
echo ""
echo " $ sdk selfupdate force"
echo ""
echo "======================================================================================================"
echo ""
exit 0
fi
echo "Looking for unzip..."
if ! command -v unzip > /dev/null; then
echo "Not found."
echo "======================================================================================================"
echo " Please install unzip on your system using your favourite package manager."
echo ""
echo " Restart after installing unzip."
echo "======================================================================================================"
echo ""
exit 1
fi
echo "Looking for zip..."
if ! command -v zip > /dev/null; then
echo "Not found."
echo "======================================================================================================"
echo " Please install zip on your system using your favourite package manager."
echo ""
echo " Restart after installing zip."
echo "======================================================================================================"
echo ""
exit 1
fi
echo "Looking for curl..."
if ! command -v curl > /dev/null; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install curl on your system using your favourite package manager."
echo ""
echo " Restart after installing curl."
echo "======================================================================================================"
echo ""
exit 1
fi
if [[ "$solaris" == true ]]; then
echo "Looking for gsed..."
if [ -z $(which gsed) ]; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install gsed on your solaris system."
echo ""
echo " SDKMAN uses gsed extensively."
echo ""
echo " Restart after installing gsed."
echo "======================================================================================================"
echo ""
exit 1
fi
else
echo "Looking for sed..."
if [ -z $(command -v sed) ]; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install sed on your system using your favourite package manager."
echo ""
echo " Restart after installing sed."
echo "======================================================================================================"
echo ""
exit 1
fi
fi
echo "Installing SDKMAN scripts..."
# Create directory structure
echo "Create distribution directories..."
mkdir -p "$sdkman_tmp_folder"
mkdir -p "$sdkman_ext_folder"
mkdir -p "$sdkman_etc_folder"
mkdir -p "$sdkman_var_folder"
mkdir -p "$sdkman_archives_folder"
mkdir -p "$sdkman_candidates_folder"
echo "Getting available candidates..."
SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all")
echo "$SDKMAN_CANDIDATES_CSV" > "${SDKMAN_DIR}/var/candidates"
echo "Prime the config file..."
touch "$sdkman_config_file"
echo "sdkman_auto_answer=false" >> "$sdkman_config_file"
if [ -z "$ZSH_VERSION" -a -z "$BASH_VERSION" ]; then
echo "sdkman_auto_complete=false" >> "$sdkman_config_file"
else
echo "sdkman_auto_complete=true" >> "$sdkman_config_file"
fi
echo "sdkman_auto_env=false" >> "$sdkman_config_file"
echo "sdkman_auto_update=true" >> "$sdkman_config_file"
echo "sdkman_beta_channel=false" >> "$sdkman_config_file"
echo "sdkman_checksum_enable=true" >> "$sdkman_config_file"
echo "sdkman_colour_enable=true" >> "$sdkman_config_file"
echo "sdkman_curl_connect_timeout=7" >> "$sdkman_config_file"
echo "sdkman_curl_max_time=10" >> "$sdkman_config_file"
echo "sdkman_debug_mode=false" >> "$sdkman_config_file"
echo "sdkman_insecure_ssl=false" >> "$sdkman_config_file"
echo "sdkman_rosetta2_compatible=false" >> "$sdkman_config_file"
echo "sdkman_selfupdate_feature=true" >> "$sdkman_config_file"
echo "Download script archive..."
curl --location --progress-bar "${SDKMAN_SERVICE}/broker/download/sdkman/install/${SDKMAN_VERSION}/${SDKMAN_PLATFORM}" > "$sdkman_zip_file"
ARCHIVE_OK=$(unzip -qt "$sdkman_zip_file" | grep 'No errors detected in compressed data')
if [[ -z "$ARCHIVE_OK" ]]; then
echo "Downloaded zip archive corrupt. Are you connected to the internet?"
echo ""
echo "If problems persist, please ask for help on our Slack:"
echo "* easy sign up: https://slack.sdkman.io/"
echo "* report on channel: https://sdkman.slack.com/app_redirect?channel=user-issues"
rm -rf "$SDKMAN_DIR"
exit 1
fi
echo "Extract script archive..."
if [[ "$cygwin" == 'true' ]]; then
echo "Cygwin detected - normalizing paths for unzip..."
sdkman_tmp_folder=$(cygpath -w "$sdkman_tmp_folder")
sdkman_zip_file=$(cygpath -w "$sdkman_zip_file")
sdkman_zip_base_folder=$(cygpath -w "$sdkman_zip_base_folder")
fi
unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder"
echo "Install scripts..."
mv "${sdkman_zip_base_folder}/"* "$SDKMAN_DIR"
rm -rf "$sdkman_zip_base_folder"
echo "Set version to $SDKMAN_VERSION ..."
echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version"
if [[ $darwin == true ]]; then
touch "$sdkman_bash_profile"
echo "Attempt update of login bash profile on OSX..."
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile"
echo "Added sdkman init snippet to $sdkman_bash_profile"
fi
else
echo "Attempt update of interactive bash profile on regular UNIX..."
touch "${sdkman_bashrc}"
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bashrc") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_bashrc"
echo "Added sdkman init snippet to $sdkman_bashrc"
fi
fi
echo "Attempt update of zsh profile..."
touch "$sdkman_zshrc"
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_zshrc") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_zshrc"
echo "Updated existing ${sdkman_zshrc}"
fi
echo -e "\n\n\nAll done!\n\n"
echo "You are subscribed to the STABLE channel."
echo ""
echo "Please open a new terminal, or run the following in the existing one:"
echo ""
echo " source \"${SDKMAN_DIR}/bin/sdkman-init.sh\""
echo ""
echo "Then issue the following command:"
echo ""
echo " sdk help"
echo ""
echo "Enjoy!!!"

View File

@ -218,8 +218,8 @@ RUN dotnet tool list -g && \
################################################################## ##################################################################
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
apt-get update && \ apt-get update && \
apt-get install -y --allow-unauthenticated \ apt-get install -y --allow-unauthenticated \
mono-complete \ mono-complete \
@ -279,7 +279,15 @@ RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licen
################################################################## ##################################################################
#USER root #USER root
#RUN export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io?rcupdate=false" | bash #RUN export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io?rcupdate=false" | bash
RUN export SDKMAN_DIR="/config/.sdkman" && curl -s "https://get.sdkman.io" | bash #RUN export SDKMAN_DIR="/config/.sdkman" && curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" -s "https://get.sdkman.io" | bash
COPY ./sdkman.sh /tmp/sdkman.sh
RUN export SDKMAN_DIR="/config/.sdkman" && chmod +x /tmp/sdkman.sh
RUN /tmp/sdkman.sh
##################################################################
# Upgrade SDK-man
##################################################################
RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk selfupdate force;"
################################################################## ##################################################################
# Gradle # Gradle
@ -294,14 +302,15 @@ RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install kotlin;
################################################################## ##################################################################
# installing java11 # installing java11
################################################################## ##################################################################
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ focal main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ echo 'deb https://packages.adoptium.net/artifactory/deb focal main' > /etc/apt/sources.list.d/temurin-official.list && \
apt-get update && \ apt-get update && \
apt-get autoremove -y && \ apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ apt-get install -y --allow-unauthenticated temurin-11-jdk && \
mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \
java -version
################################################################## ##################################################################
# cleaninig up # cleaninig up

View File

@ -0,0 +1,312 @@
#!/bin/bash
#
# Copyright 2017 Marco Vermeulen
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# install:- channel: stable; cliVersion: 5.15.0; cliNativeVersion: NA; api: https://api.sdkman.io/2
# Global variables
SDKMAN_SERVICE="https://api.sdkman.io/2"
SDKMAN_VERSION="5.15.0"
SDKMAN_PLATFORM=$(uname)
if [ -z "$SDKMAN_DIR" ]; then
SDKMAN_DIR="$HOME/.sdkman"
SDKMAN_DIR_RAW='$HOME/.sdkman'
else
SDKMAN_DIR_RAW="$SDKMAN_DIR"
fi
# Local variables
sdkman_tmp_folder="${SDKMAN_DIR}/tmp"
sdkman_zip_file="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}.zip"
sdkman_zip_base_folder="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}"
sdkman_ext_folder="${SDKMAN_DIR}/ext"
sdkman_etc_folder="${SDKMAN_DIR}/etc"
sdkman_var_folder="${SDKMAN_DIR}/var"
sdkman_archives_folder="${SDKMAN_DIR}/archives"
sdkman_candidates_folder="${SDKMAN_DIR}/candidates"
sdkman_config_file="${sdkman_etc_folder}/config"
sdkman_bash_profile="${HOME}/.bash_profile"
sdkman_profile="${HOME}/.profile"
sdkman_bashrc="${HOME}/.bashrc"
sdkman_zshrc="${ZDOTDIR:-${HOME}}/.zshrc"
sdkman_init_snippet=$( cat << EOF
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$SDKMAN_DIR_RAW"
[[ -s "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh"
EOF
)
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
solaris=false;
freebsd=false;
case "$(uname)" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
SunOS*)
solaris=true
;;
FreeBSD*)
freebsd=true
esac
echo ''
echo ' -+syyyyyyys:'
echo ' `/yho:` -yd.'
echo ' `/yh/` +m.'
echo ' .oho. hy .`'
echo ' .sh/` :N` `-/o` `+dyyo:.'
echo ' .yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+'
echo ' .sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.'
echo ' `od/` `N- -/oM- ddd+` `sd: hNNm -N:'
echo ' :do` .M. dMMM- `ms. /d+` `NMMs `do'
echo ' .yy- :N` ```mMMM. - -hy. /MMM: yh'
echo ' `+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.'
echo ' -dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/'
echo ' `oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy'
echo ' .hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.'
echo ' :mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do'
echo ' /NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.'
echo ' /NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs'
echo ' -NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.'
echo ' `mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh'
echo ' +MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-'
echo ' mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo'
echo ' MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`'
echo ' dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/'
echo ' .dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`'
echo ' `/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh'
echo ' `.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.'
echo ' /moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:'
echo ' /+m: `.-:::-` /d+ +MMMMMMMNh:`'
echo ' +MN/ -yh. `+hddhy+.'
echo ' /MM+ .sh:'
echo ' :NMo -sh/'
echo ' -NMs `/yy:'
echo ' .NMy `:sh+.'
echo ' `mMm` ./yds-'
echo ' `dMMMmyo:-.````.-:oymNy:`'
echo ' +NMMMMMMMMMMMMMMMMms:`'
echo ' -+shmNMMMNmdy+:`'
echo ''
echo ''
echo ' Now attempting installation...'
echo ''
echo ''
# Sanity checks
echo "Looking for a previous installation of SDKMAN..."
if [ -d "$SDKMAN_DIR" ]; then
echo "SDKMAN found."
echo ""
echo "======================================================================================================"
echo " You already have SDKMAN installed."
echo " SDKMAN was found at:"
echo ""
echo " ${SDKMAN_DIR}"
echo ""
echo " Please consider running the following if you need to upgrade."
echo ""
echo " $ sdk selfupdate force"
echo ""
echo "======================================================================================================"
echo ""
exit 0
fi
echo "Looking for unzip..."
if ! command -v unzip > /dev/null; then
echo "Not found."
echo "======================================================================================================"
echo " Please install unzip on your system using your favourite package manager."
echo ""
echo " Restart after installing unzip."
echo "======================================================================================================"
echo ""
exit 1
fi
echo "Looking for zip..."
if ! command -v zip > /dev/null; then
echo "Not found."
echo "======================================================================================================"
echo " Please install zip on your system using your favourite package manager."
echo ""
echo " Restart after installing zip."
echo "======================================================================================================"
echo ""
exit 1
fi
echo "Looking for curl..."
if ! command -v curl > /dev/null; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install curl on your system using your favourite package manager."
echo ""
echo " Restart after installing curl."
echo "======================================================================================================"
echo ""
exit 1
fi
if [[ "$solaris" == true ]]; then
echo "Looking for gsed..."
if [ -z $(which gsed) ]; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install gsed on your solaris system."
echo ""
echo " SDKMAN uses gsed extensively."
echo ""
echo " Restart after installing gsed."
echo "======================================================================================================"
echo ""
exit 1
fi
else
echo "Looking for sed..."
if [ -z $(command -v sed) ]; then
echo "Not found."
echo ""
echo "======================================================================================================"
echo " Please install sed on your system using your favourite package manager."
echo ""
echo " Restart after installing sed."
echo "======================================================================================================"
echo ""
exit 1
fi
fi
echo "Installing SDKMAN scripts..."
# Create directory structure
echo "Create distribution directories..."
mkdir -p "$sdkman_tmp_folder"
mkdir -p "$sdkman_ext_folder"
mkdir -p "$sdkman_etc_folder"
mkdir -p "$sdkman_var_folder"
mkdir -p "$sdkman_archives_folder"
mkdir -p "$sdkman_candidates_folder"
echo "Getting available candidates..."
SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all")
echo "$SDKMAN_CANDIDATES_CSV" > "${SDKMAN_DIR}/var/candidates"
echo "Prime the config file..."
touch "$sdkman_config_file"
echo "sdkman_auto_answer=false" >> "$sdkman_config_file"
if [ -z "$ZSH_VERSION" -a -z "$BASH_VERSION" ]; then
echo "sdkman_auto_complete=false" >> "$sdkman_config_file"
else
echo "sdkman_auto_complete=true" >> "$sdkman_config_file"
fi
echo "sdkman_auto_env=false" >> "$sdkman_config_file"
echo "sdkman_auto_update=true" >> "$sdkman_config_file"
echo "sdkman_beta_channel=false" >> "$sdkman_config_file"
echo "sdkman_checksum_enable=true" >> "$sdkman_config_file"
echo "sdkman_colour_enable=true" >> "$sdkman_config_file"
echo "sdkman_curl_connect_timeout=7" >> "$sdkman_config_file"
echo "sdkman_curl_max_time=10" >> "$sdkman_config_file"
echo "sdkman_debug_mode=false" >> "$sdkman_config_file"
echo "sdkman_insecure_ssl=false" >> "$sdkman_config_file"
echo "sdkman_rosetta2_compatible=false" >> "$sdkman_config_file"
echo "sdkman_selfupdate_feature=true" >> "$sdkman_config_file"
echo "Download script archive..."
curl --location --progress-bar "${SDKMAN_SERVICE}/broker/download/sdkman/install/${SDKMAN_VERSION}/${SDKMAN_PLATFORM}" > "$sdkman_zip_file"
ARCHIVE_OK=$(unzip -qt "$sdkman_zip_file" | grep 'No errors detected in compressed data')
if [[ -z "$ARCHIVE_OK" ]]; then
echo "Downloaded zip archive corrupt. Are you connected to the internet?"
echo ""
echo "If problems persist, please ask for help on our Slack:"
echo "* easy sign up: https://slack.sdkman.io/"
echo "* report on channel: https://sdkman.slack.com/app_redirect?channel=user-issues"
rm -rf "$SDKMAN_DIR"
exit 1
fi
echo "Extract script archive..."
if [[ "$cygwin" == 'true' ]]; then
echo "Cygwin detected - normalizing paths for unzip..."
sdkman_tmp_folder=$(cygpath -w "$sdkman_tmp_folder")
sdkman_zip_file=$(cygpath -w "$sdkman_zip_file")
sdkman_zip_base_folder=$(cygpath -w "$sdkman_zip_base_folder")
fi
unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder"
echo "Install scripts..."
mv "${sdkman_zip_base_folder}/"* "$SDKMAN_DIR"
rm -rf "$sdkman_zip_base_folder"
echo "Set version to $SDKMAN_VERSION ..."
echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version"
if [[ $darwin == true ]]; then
touch "$sdkman_bash_profile"
echo "Attempt update of login bash profile on OSX..."
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile"
echo "Added sdkman init snippet to $sdkman_bash_profile"
fi
else
echo "Attempt update of interactive bash profile on regular UNIX..."
touch "${sdkman_bashrc}"
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bashrc") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_bashrc"
echo "Added sdkman init snippet to $sdkman_bashrc"
fi
fi
echo "Attempt update of zsh profile..."
touch "$sdkman_zshrc"
if [[ -z $(grep 'sdkman-init.sh' "$sdkman_zshrc") ]]; then
echo -e "\n$sdkman_init_snippet" >> "$sdkman_zshrc"
echo "Updated existing ${sdkman_zshrc}"
fi
echo -e "\n\n\nAll done!\n\n"
echo "You are subscribed to the STABLE channel."
echo ""
echo "Please open a new terminal, or run the following in the existing one:"
echo ""
echo " source \"${SDKMAN_DIR}/bin/sdkman-init.sh\""
echo ""
echo "Then issue the following command:"
echo ""
echo " sdk help"
echo ""
echo "Enjoy!!!"

View File

@ -81,8 +81,8 @@ RUN dotnet tool list -g && \
################################################################## ##################################################################
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
apt-get update && \ apt-get update && \
apt-get install -y --allow-unauthenticated \ apt-get install -y --allow-unauthenticated \
mono-complete \ mono-complete \

View File

@ -1,7 +1,7 @@
################################################################################ ################################################################################
# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server # https://github.com/linuxserver/docker-code-server/pkgs/container/code-server
################################################################################ ################################################################################
FROM ghcr.io/linuxserver/code-server:focal FROM ghcr.io/linuxserver/code-server:latest
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
@ -16,7 +16,7 @@ ENV BuildDocker true
################################################################## ##################################################################
# 7z official binary # 7z official binary
################################################################## ##################################################################
ENV SZ_VERSION=7z2103 ENV SZ_VERSION=7z2107
ENV SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz ENV SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
################################################################## ##################################################################

View File

@ -16,8 +16,8 @@ ENV BuildDocker true
################################################################## ##################################################################
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \ # echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
apt-get update && \ apt-get update && \
apt-get install -y --allow-unauthenticated \ apt-get install -y --allow-unauthenticated \
mono-complete \ mono-complete \

View File

@ -3,15 +3,15 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
###### Ubuntu Main Repos ###### Ubuntu Main Repos
deb http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb-src http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
###### Ubuntu Update Repos ###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

View File

@ -3,15 +3,15 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
###### Ubuntu Main Repos ###### Ubuntu Main Repos
deb http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb-src http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
###### Ubuntu Update Repos ###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

View File

@ -3,15 +3,15 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
###### Ubuntu Main Repos ###### Ubuntu Main Repos
deb http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb-src http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
###### Ubuntu Update Repos ###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

View File

@ -3,15 +3,15 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
###### Ubuntu Main Repos ###### Ubuntu Main Repos
deb http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb-src http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
###### Ubuntu Update Repos ###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

View File

@ -3,15 +3,15 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
###### Ubuntu Main Repos ###### Ubuntu Main Repos
deb http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirror.yandex.ru/ubuntu/ focal main restricted universe multiverse deb-src http://mirror.yandex.ru/ubuntu/ jammy main restricted universe multiverse
###### Ubuntu Update Repos ###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://ru.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

View File

@ -33,6 +33,7 @@ RUN apt-get update && \
authnz_ldap \ authnz_ldap \
headers \ headers \
heartbeat \ heartbeat \
slotmem_shm \
lua \ lua \
mime \ mime \
status \ status \
@ -99,14 +100,18 @@ RUN apt clean -y && \
rm -rfv /tmp/composer-setup.php && \ rm -rfv /tmp/composer-setup.php && \
rm -rfv /tmp/ioncube.tar.gz rm -rfv /tmp/ioncube.tar.gz
#volumes #healthcheck. good practice
VOLUME ["/var/www"] HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
# Add image configuration and scripts # Add image configuration and scripts
COPY run.sh /run.sh COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
RUN chmod 755 /*.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh
RUN chown -Rf www-data:www-data /var/www
# Configure application #Final config
EXPOSE 80 VOLUME ["/var/www"]
WORKDIR /var/www/ WORKDIR /var/www/
CMD ["/run.sh"] EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -33,6 +33,7 @@ RUN apt-get update && \
authnz_ldap \ authnz_ldap \
headers \ headers \
heartbeat \ heartbeat \
slotmem_shm \
lua \ lua \
mime \ mime \
status \ status \
@ -92,14 +93,18 @@ RUN apt clean -y && \
rm -rfv /tmp/composer-setup.php && \ rm -rfv /tmp/composer-setup.php && \
rm -rfv /tmp/ioncube.tar.gz rm -rfv /tmp/ioncube.tar.gz
#volumes #healthcheck. good practice
VOLUME ["/var/www"] HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
# Add image configuration and scripts # Add image configuration and scripts
COPY run.sh /run.sh COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
RUN chmod 755 /*.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh
RUN chown -Rf www-data:www-data /var/www
# Configure application #Final config
EXPOSE 80 VOLUME ["/var/www"]
WORKDIR /var/www/ WORKDIR /var/www/
CMD ["/run.sh"] EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -33,6 +33,7 @@ RUN apt-get update && \
authnz_ldap \ authnz_ldap \
headers \ headers \
heartbeat \ heartbeat \
slotmem_shm \
lua \ lua \
mime \ mime \
status \ status \
@ -92,14 +93,18 @@ RUN apt clean -y && \
rm -rfv /tmp/composer-setup.php && \ rm -rfv /tmp/composer-setup.php && \
rm -rfv /tmp/ioncube.tar.gz rm -rfv /tmp/ioncube.tar.gz
#volumes #healthcheck. good practice
VOLUME ["/var/www"] HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
# Add image configuration and scripts # Add image configuration and scripts
COPY run.sh /run.sh COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
RUN chmod 755 /*.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh
RUN chown -Rf www-data:www-data /var/www
# Configure application #Final config
EXPOSE 80 VOLUME ["/var/www"]
WORKDIR /var/www/ WORKDIR /var/www/
CMD ["/run.sh"] EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -33,6 +33,7 @@ RUN apt-get update && \
authnz_ldap \ authnz_ldap \
headers \ headers \
heartbeat \ heartbeat \
slotmem_shm \
lua \ lua \
mime \ mime \
status \ status \
@ -99,14 +100,18 @@ RUN apt clean -y && \
rm -rfv /tmp/composer-setup.php && \ rm -rfv /tmp/composer-setup.php && \
rm -rfv /tmp/ioncube.tar.gz rm -rfv /tmp/ioncube.tar.gz
#volumes #healthcheck. good practice
VOLUME ["/var/www"] HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
# Add image configuration and scripts # Add image configuration and scripts
COPY run.sh /run.sh COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
RUN chmod 755 /*.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh
RUN chown -Rf www-data:www-data /var/www
# Configure application #Final config
EXPOSE 80 VOLUME ["/var/www"]
WORKDIR /var/www/ WORKDIR /var/www/
CMD ["/run.sh"] EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -34,6 +34,7 @@ RUN apt-get update && \
authnz_ldap \ authnz_ldap \
headers \ headers \
heartbeat \ heartbeat \
slotmem_shm \
lua \ lua \
mime \ mime \
status \ status \
@ -56,9 +57,9 @@ RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf
################################################################## ##################################################################
# Installing IOnCube addon # Installing IOnCube addon
################################################################## ##################################################################
RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ #RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \
php -m && \ # php -m && \
php -v # php -v
################################################################## ##################################################################
# Installing timezonedb addon # Installing timezonedb addon
@ -100,14 +101,18 @@ RUN apt clean -y && \
rm -rfv /tmp/composer-setup.php && \ rm -rfv /tmp/composer-setup.php && \
rm -rfv /tmp/ioncube.tar.gz rm -rfv /tmp/ioncube.tar.gz
#volumes #healthcheck. good practice
VOLUME ["/var/www"] HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
# Add image configuration and scripts # Add image configuration and scripts
COPY run.sh /run.sh COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
RUN chmod 755 /*.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh
RUN chown -Rf www-data:www-data /var/www
# Configure application #Final config
EXPOSE 80 VOLUME ["/var/www"]
WORKDIR /var/www/ WORKDIR /var/www/
CMD ["/run.sh"] EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk8 FROM epicmorg/debian:bullseye-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

View File

@ -1,4 +1,4 @@
FROM epicmorg/prod:jdk11 FROM epicmorg/debian:bullseye-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive

Some files were not shown because too many files have changed in this diff Show More