Du brauchst:
- einen aktuellen Linux-Server,
- eine Einarbeitung in Docker z.B. in der ct von heise
- Installation docker und docker-compose
- zwei passende docker-compose.yml für nginx-proxy und owncloud wie diese hier:
version: '2'
services:
nginxproxy:
image: jwilder/nginx-proxy:latest
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
container_name: nginxproxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginxproxy_certs:/etc/nginx/certs:ro
- ./nginxproxy_vhosts:/etc/nginx/vhost.d
- ./nginxproxy_html:/usr/share/nginx/html
# - ./nginxproxy_conf.d:/etc/nginx/conf.d
- ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro
nginx-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-letsencrypt
restart: always
depends_on:
- nginxproxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./nginxproxy_certs:/etc/nginx/certs:rw
- ./nginxproxy_vhosts:/etc/nginx/vhost.d
- ./nginxproxy_html:/usr/share/nginx/html
environment:
- TZ=Europe/Berlin
- DEFAULT_HOST=owncloud.xy.d
# ACME_CA_URI: "https://acme-staging.api.letsencrypt.org/directory"
portainer:
image: portainer/portainer
container_name: "portainer-app"
restart: always
environment:
VIRTUAL_HOST: "portainer.xy.de"
LETSENCRYPT_HOST: "portainer.xy.de"
LETSENCRYPT_EMAIL: "webadmin@xy.de"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer:/data
watchtower:
image: v2tec/watchtower
container_name: "portainer-watchtower"
restart: always
command: --cleanup portainer-app portainer-watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
version: '2'
services:
owncloud:
image: owncloud:10.0.4
privileged: true
restart: always
volumes:
- ./apps:/var/www/html/apps
- ./config:/var/www/html/config
- ./ownclouddata:/var/www/html/data
environment:
- VIRTUAL_NETWORK=nginxproxy_default
- VIRTUAL_HOST=owncloud.xy.de
- LETSENCRYPT_HOST=owncloud.xy.de
- LETSENCRYPT_EMAIL=webadmin@xy.de
networks:
- nginxproxy_default
- back
oc-mariadb:
image: mariadb:10.0.32
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- back
volumes:
- ./mysql-config:/etc/mysql
- ./mysql:/var/lib/mysql
networks:
nginxproxy_default:
external: true
back:
Das ganze kannst du dann jeweils mit docker-compose up -d aus dem Verzeichnis in dem die yml-Datei steht starten. Die konfigurierten Volumenpfade müssen existieren. xy.de musst du ersetzen. Alle anderen Abläufe werden von docker automatisch abgewickelt. Ich habe ca. 4 Wochen dafür investiert bis ich alle Hakeleien im Griff hatte und bin mit der Docker-Umgebung deutlich zufriedener als vorher.