Beiträge von digitalfrosch
-
-
Den Port dürfte nicht doppelt belegt sein. Aber folgende Meldung erscheint beim Proxy:
Codenginx-proxy-le | 2020/02/05 15:22:12 Received event start for container abc nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:12 Received event start for container abc nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:13 Error inspecting container: ea95116aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf7bc33aa8056755c676da57d: No such container: ea95116aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf7bc33aa8056755c676da57d nginx-proxy_1 | dockergen.1 | 2020/02/05 15:22:13 Generated '/etc/nginx/conf.d/default.conf' from 26 containers
-
Hallo Zusammen,
danke für die zahlreichen Tipps.
Ich habe versucht der Anleitung https://forum.netcup.de/administration-eines-server-vserver/vserver-server-kvm-server/p121991-docker-mailcow-nginx-reverse-proxy-wordpress zu folgen und die docker-compose.yml wie folgt angepasst:
Code
Alles anzeigenversion: '2.1' services: ... mysql-mailcow: image: mariadb:10.3 depends_on: - unbound-mailcow stop_grace_period: 45s volumes: - mysql-vol-1:/var/lib/mysql/ - mysql-socket-vol-1:/var/run/mysqld/ - ./data/conf/mysql/:/etc/mysql/conf.d/:ro environment: - TZ=${TZ} - MYSQL_ROOT_PASSWORD=${DBROOT} - MYSQL_DATABASE=${DBNAME} - MYSQL_USER=${DBUSER} - MYSQL_PASSWORD=${DBPASS} - MYSQL_INITDB_SKIP_TZINFO=1 restart: always ports: - "${SQL_PORT:-127.0.0.1:13306}:3306" networks: mailcow-network: aliases: - mysql ... dovecot-mailcow: image: mailcow/dovecot:1.108 depends_on: - mysql-mailcow dns: - ${IPV4_NETWORK:-172.22.1}.254 cap_add: - NET_BIND_SERVICE volumes: - ./data/hooks/dovecot:/hooks - ./data/conf/dovecot:/etc/dovecot # - ./data/assets/ssl:/etc/ssl/mail/:ro - ./data/conf/sogo/:/etc/sogo/ - ./data/conf/phpfpm/sogo-sso/:/etc/phpfpm/ - vmail-vol-1:/var/vmail - vmail-attachments-vol-1:/var/attachments - crypt-vol-1:/mail_crypt/ - ./data/conf/rspamd/custom/:/etc/rspamd/custom - ./data/assets/templates:/templates - rspamd-vol-1:/var/lib/rspamd - mysql-socket-vol-1:/var/run/mysqld/ - .././data/nginx/certs/mail.example.com/fullchain.pem:/etc/ssl/mail/cert.pem:ro - .././data/nginx/certs/mail.example.com/key.pem:/etc/ssl/mail/key.pem:ro environment: - LOG_LINES=${LOG_LINES:-9999} - DBNAME=${DBNAME} - DBUSER=${DBUSER} - DBPASS=${DBPASS} - TZ=${TZ} - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME} - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1} - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n} - MAILDIR_GC_TIME=${MAILDIR_GC_TIME:-1440} - ACL_ANYONE=${ACL_ANYONE:-disallow} - SKIP_SOLR=${SKIP_SOLR:-y} - MAILDIR_SUB=${MAILDIR_SUB:-} ports: - "${DOVEADM_PORT:-127.0.0.1:19991}:12345" - "${IMAP_PORT:-143}:143" - "${IMAPS_PORT:-993}:993" - "${POP_PORT:-110}:110" - "${POPS_PORT:-995}:995" - "${SIEVE_PORT:-4190}:4190" restart: always tty: true ulimits: nproc: 65535 nofile: soft: 20000 hard: 40000 hostname: ${MAILCOW_HOSTNAME} networks: mailcow-network: ipv4_address: ${IPV4_NETWORK:-172.22.1}.250 aliases: - dovecot postfix-mailcow: image: mailcow/postfix:1.44 depends_on: - mysql-mailcow volumes: - ./data/conf/postfix:/opt/postfix/conf # - ./data/assets/ssl:/etc/ssl/mail/:ro - postfix-vol-1:/var/spool/postfix - crypt-vol-1:/var/lib/zeyple - rspamd-vol-1:/var/lib/rspamd - mysql-socket-vol-1:/var/run/mysqld/ - .././data/nginx/certs/mail.example.com/fullchain.pem:/etc/ssl/mail/cert.pem:ro - .././data/nginx/certs/mail.example.com/key.pem:/etc/ssl/mail/key.pem:ro environment: - LOG_LINES=${LOG_LINES:-9999} - TZ=${TZ} - DBNAME=${DBNAME} - DBUSER=${DBUSER} - DBPASS=${DBPASS} cap_add: - NET_BIND_SERVICE ports: - "${SMTP_PORT:-25}:25" - "${SMTPS_PORT:-465}:465" - "${SUBMISSION_PORT:-587}:587" restart: always dns: - ${IPV4_NETWORK:-172.22.1}.254 hostname: ${MAILCOW_HOSTNAME} networks: mailcow-network: aliases: - postfix memcached-mailcow: image: memcached:alpine restart: always environment: - TZ=${TZ} networks: mailcow-network: aliases: - memcached nginx-mailcow: depends_on: - sogo-mailcow - php-fpm-mailcow - redis-mailcow image: nginx:mainline-alpine dns: - ${IPV4_NETWORK:-172.22.1}.254 command: /bin/sh -c "envsubst < /etc/nginx/conf.d/templates/listen_plain.template > /etc/nginx/conf.d/listen_plain.active && envsubst < /etc/nginx/conf.d/templates/listen_ssl.template > /etc/nginx/conf.d/listen_ssl.active && envsubst < /etc/nginx/conf.d/templates/server_name.template > /etc/nginx/conf.d/server_name.active && envsubst < /etc/nginx/conf.d/templates/sogo.template > /etc/nginx/conf.d/sogo.active && envsubst < /etc/nginx/conf.d/templates/sogo_eas.template > /etc/nginx/conf.d/sogo_eas.active && . /etc/nginx/conf.d/templates/sogo.auth_request.template.sh > /etc/nginx/conf.d/sogo_proxy_auth.active && . /etc/nginx/conf.d/templates/sites.template.sh > /etc/nginx/conf.d/sites.active && nginx -qt && until ping phpfpm -c1 > /dev/null; do sleep 1; done && until ping sogo -c1 > /dev/null; do sleep 1; done && until ping redis -c1 > /dev/null; do sleep 1; done && until ping rspamd -c1 > /dev/null; do sleep 1; done && exec nginx -g 'daemon off;'" environment: - HTTPS_PORT=${HTTPS_PORT:-443} - HTTP_PORT=${HTTP_PORT:-80} - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME} - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1} - TZ=${TZ} - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n} - VIRTUAL_HOST=${MAILCOW_HOSTNAME} - VIRTUAL_PORT=8080 - VIRTUAL_PROTO=http - LETSENCRYPT_HOST=${MAILCOW_HOSTNAME} - LETSENCRYPT_EMAIL=mail@example.com volumes: - ./data/web:/web:ro - ./data/conf/rspamd/dynmaps:/dynmaps:ro # - ./data/assets/ssl/:/etc/ssl/mail/:ro - ./data/conf/nginx/:/etc/nginx/conf.d/:rw - ./data/conf/rspamd/meta_exporter:/meta_exporter:ro - sogo-web-vol-1:/usr/lib/GNUstep/SOGo/ - .././data/nginx/certs/mail.example.com/fullchain.pem:/etc/ssl/mail/cert.pem:ro - .././data/nginx/certs/mail.example.com/key.pem:/etc/ssl/mail/key.pem:ro # ports: # - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}" # - "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}" expose: - "8080" restart: always networks: mailcow-network: aliases: - nginx nginxproxy: aliases: - mail.example.com ... networks: mailcow-network: driver: bridge driver_opts: com.docker.network.bridge.name: br-mailcow enable_ipv6: true ipam: driver: default config: - subnet: ${IPV4_NETWORK:-172.22.1}.0/24 - subnet: ${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64} nginxproxy: external: true
Nur ruft „jrcs/letsencrypt-nginx-proxy-companion“ keine Zertifikate ab und „jwilder/nginx-proxy“ reagiert nicht auf die ergänzten Zeilen:
Code- VIRTUAL_HOST=${MAILCOW_HOSTNAME} - VIRTUAL_PORT=8080 - VIRTUAL_PROTO=http - LETSENCRYPT_HOST=${MAILCOW_HOSTNAME} - LETSENCRYPT_EMAIL=mail@example.com
Diese Befehle funktionieren in den weiteren .yml problemlos.
Das Netzwerk „nginxproxy“ ist „jrcs/letsencrypt-nginx-proxy-companion“ und „jwilder/nginx-proxy“ ebenfalls zugewiesen.
Hat jemand eine Idee woran das liegen könnte?
Vielen Dank im Voraus.
Viele Grüße
-
Hallo Zusammen,
ich würde gerne meiner aktuellen Docker-Installation (Config beigefügt) eine Mailcow hinzufügen.
Die Mailcow liegt im selben Haupt-Verzeichnis wie alle weiteren Volumens im Unterordner „mailcow-dockerized“.
Aktuell weiß ich nicht wie sich der bereits bestehende MariaDB-Container mit einer weiteren DB nutzen lässt und ich das Ganze auch hinter den jwilder/nginx-proxy schalte.
Code
Alles anzeigenversion: '3.4' services: Watchtower: image: v2tec/watchtower:latest command: --interval 30 restart: unless-stopped container_name: Watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock labels: - "traefik.enable=false" mariadb: image: mariadb:10.4 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_USER: secret MYSQL_PASSWORD: secret restart: unless-stopped volumes: - ./mariadb_01/init.sql:/docker-entrypoint-initdb.d/init.sql - ./mariadb_01/db:/var/lib/mysql site1: depends_on: - mariadb - nginx-proxy - letsencrypt image: wordpress restart: unless-stopped environment: WORDPRESS_DB_HOST: mariadb WORDPRESS_DB_USER: secret WORDPRESS_DB_PASSWORD: secret WORDPRESS_DB_NAME: site1 LETSENCRYPT_HOST: www.site1.com LETSENCRYPT_EMAIL: info@site1.com VIRTUAL_HOST: www.site1.com VIRTUAL_PORT: 80 working_dir: /var/www/html volumes: - ./site1/html/wp-content:/var/www/html/wp-content nginx-proxy: image: jwilder/nginx-proxy restart: unless-stopped volumes: - ./data/nginx/conf:/etc/nginx/conf.d - ./data/nginx/vhost:/etc/nginx/vhost.d - ./data/nginx/html:/usr/share/nginx/html - ./data/nginx/dhparam:/etc/nginx/dhparam - ./data/nginx/certs:/etc/nginx/certs:ro - /var/run/docker.sock:/tmp/docker.sock:ro - ./cloud/client.conf:/etc/nginx/conf.d/client.conf:ro ports: - 80:80 - 443:443 labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" letsencrypt: depends_on: - nginx-proxy image: jrcs/letsencrypt-nginx-proxy-companion container_name: nginx-proxy-le volumes: - ./data/nginx/certs:/etc/nginx/certs:rw - ./data/nginx/conf:/etc/nginx/conf.d - ./data/nginx/vhost:/etc/nginx/vhost.d - ./data/nginx/html:/usr/share/nginx/html - ./data/nginx/dhparam:/etc/nginx/dhparam - /var/run/docker.sock:/var/run/docker.sock:ro site2: depends_on: - mariadb - nginx-proxy - letsencrypt image: wordpress restart: unless-stopped environment: WORDPRESS_DB_HOST: mariadb WORDPRESS_DB_USER: secret WORDPRESS_DB_PASSWORD: secret WORDPRESS_DB_NAME: site2de LETSENCRYPT_HOST: www.site2.de LETSENCRYPT_EMAIL: info@site1.com VIRTUAL_HOST: www.site2.de VIRTUAL_PORT: 80 working_dir: /var/www/html volumes: - ./site2de/html/wp-content:/var/www/html/wp-content site3: depends_on: - mariadb - nginx-proxy - letsencrypt image: wordpress restart: unless-stopped environment: WORDPRESS_DB_HOST: mariadb WORDPRESS_DB_USER: secret WORDPRESS_DB_PASSWORD: secret WORDPRESS_DB_NAME: site3com LETSENCRYPT_HOST: www.site3.com LETSENCRYPT_EMAIL: info@site1.com VIRTUAL_HOST: www.site3.com VIRTUAL_PORT: 80 working_dir: /var/www/html volumes: - ./site3com/html/wp-content:/var/www/html/wp-content nextcloud: image: nextcloud:latest container_name: nextcloud-app depends_on: - mariadb volumes: - ./cloud/nextcloud:/var/www/html:rw - ./cloud/app/config:/var/www/html/config - ./cloud/app/custom_apps:/var/www/html/custom_apps - ./cloud/app/data:/var/www/html/data - ./cloud/app/themes:/var/www/html/themes - /etc/localtime:/etc/localtime:ro environment: LETSENCRYPT_HOST: cloud.site1.com LETSENCRYPT_EMAIL: info@site1.com VIRTUAL_HOST: cloud.site1.com VIRTUAL_PORT: 80 MYSQL_DATABASE: nextcloud MYSQL_USER: secret MYSQL_PASSWORD: secret MYSQL_HOST: mariadb restart: unless-stopped
Die Datei init.sql sieht wie folgt aus:
Ob ich diese richtig eingebunden habe, da bin ich mir nicht sicher...
Code
Alles anzeigenCREATE DATABASE IF NOT EXISTS site1; CREATE DATABASE IF NOT EXISTS site3; CREATE DATABASE IF NOT EXISTS site2; CREATE DATABASE IF NOT EXISTS nextcloud; GRANT ALL PRIVILEGES ON site1.* TO 'secret'@'localhost' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON site3.* TO 'secret'@'localhost' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON site2.* TO 'secret'@'localhost' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON site1.* TO 'secret'@'%' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON site3.* TO 'secret'@'%' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON site2.* TO 'secret'@'%' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'secret'@'localhost' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'secret'@'%' IDENTIFIED BY 'mysql';
Für Tipps und Vorschläge zu den unklaren Punkten und Vorschläge für Verbesserungen wäre ich dankbar.
Die oben gezeigte Konfiguration läuft, auch wenn ich die Datenbanken manuell im Container MariaDB anlegen musste.
Viele Grüße