Hallo,
ich habe seit längeren den Mailcow Server laufen, mit Ubuntu 20.04.4 LTS. Die Update klappten sehr gut und die Funktionalität ist schon genial. Mich beunruhigt das Docker compose Update auf V2. Hat da jemand Erfahrungen, es liest sich, als wenn man den gesamten Server neu aufsetzen muss? Ist das so? Wollte jetzt ein Testsystem mal aufsetzen und das probieren, gibt es noch eine Anleitung mit der alten Docker-compose v1.
German
Upgrading docker-compose (v1) to docker compose (v2)
- Best Answerset by SteffnVo
Wieso komplett neu aufsetzen, wo liest sich das denn so? ^^
Die Anleitung ist ganz gut - in Ruhe durchlesen, vllt. nochmal ein Backup machen und dann genügen im einfachsten Fall folgende Kommandos:
docker-compose down
rm -rf /usr/local/bin/docker-compose
apt install docker-compose-plugin -y
docker compose up -d
Anschließend ggf. noch , damit das Webinterface weiterhin über IPv6 erreichbar ist.
Have something to say?
Join the community by quickly registering to participate in this discussion. We'd like to see you joining our great moo-community!
Hallo zusammen, bei mir hat das ganze leider nicht funktioniert. Es kommt ständig die Meldung:
`Validating docker-compose stack configuration…
1 error(s) decoding:
- error decoding ‘Ports’: Invalid ip address :: address ::: too many colons in address
Oh no, something went wrong. Please check the error message above.`
Ich habe in der mailcow.conf bei HTTP_BIND= und HTTPS_BIND= nun meine öffentliche IPv4 Adresse eingetragen. Sonst geht das update script bei mir nicht. Ich nutze auch MTA-STS und habe das mit den beiden Parametern ADDITIONAL_SAN=mta-sts.feinler.net und ADDITIONAL_SERVER_NAMES=mta-sts.feinler.net konfiguriert gehabt. Das läuft alles wie gesagt seit Monaten ohne Probleme mit docker-compose v1. Nach dem update auf Docker compose v2 bekomme ich nun die Meldung, dass der Name im Zertifikat falsch ist. Mein Hostname ist MAILCOW_HOSTNAME=mail.feinler.net. Wenn ich das Zertifikat im Browser aber aufmache dann steht ausgestellt für mta-sts.feinler.net. Das ist aber falsch. Ich habe nun folgendes bereits ausprobiert, funktioniert aber alles nicht.
- Ich habe die mta-sts.feinler.net Einträge aus der mailcow.conf bereits entfernt. Habe dann das update nochmals gestartet. funktioniert nicht.
- Ich habe dann die Zertifkate gelöscht wie hier beschrieben Hat aber auch nichts gebracht.
Im Log der ACME steht folgendes drin:
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:18 CEST 2022 - Waiting for Docker API…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:18 CEST 2022 - Docker API OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Waiting for Postfix…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Postfix OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Waiting for Dovecot…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Dovecot OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Waiting for database…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Database OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:19 CEST 2022 - Waiting for Nginx…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:22 CEST 2022 - Nginx OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:22 CEST 2022 - Waiting for resolver…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:23 CEST 2022 - Resolver OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:23 CEST 2022 - Waiting for domain table…
mailcowdockerized-acme-mailcow-1 | OK
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:23 CEST 2022 - Initializing, please wait…
mailcowdockerized-acme-mailcow-1 | unable to load certificate
mailcowdockerized-acme-mailcow-1 | 140599911742280:error:0909006CEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
mailcowdockerized-acme-mailcow-1 | unable to load certificate
mailcowdockerized-acme-mailcow-1 | 140700120918856:error:0909006CEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
mailcowdockerized-acme-mailcow-1 | unable to load certificate
mailcowdockerized-acme-mailcow-1 | 139668845890376:error:0909006CEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
mailcowdockerized-acme-mailcow-1 | unable to load certificate
mailcowdockerized-acme-mailcow-1 | 140011596409672:error:0909006CEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:23 CEST 2022 - Generating missing domain private rsa key…
mailcowdockerized-acme-mailcow-1 | Generating RSA private key, 4096 bit long modulus (2 primes)
mailcowdockerized-acme-mailcow-1 | …….++++
mailcowdockerized-acme-mailcow-1 | ………………………………++++
mailcowdockerized-acme-mailcow-1 | e is 65537 (0×010001)
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:24 CEST 2022 - Generating missing Lets Encrypt account key…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:24 CEST 2022 - Valid email address, using daniel@feinler.com for registration
mailcowdockerized-acme-mailcow-1 | Generating RSA private key, 4096 bit long modulus (2 primes)
mailcowdockerized-acme-mailcow-1 | …………………………………++++
mailcowdockerized-acme-mailcow-1 | ……………………………………………………………………………………..++++
mailcowdockerized-acme-mailcow-1 | e is 65537 (0×010001)
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:26 CEST 2022 - Detecting IP addresses…
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:26 CEST 2022 - OK: 37.120.160.190, 2a03:4000:6:364c:741b:8ff:fe99:3fd1
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Found AAAA record for autodiscover.feinler.com: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Found AAAA record for autoconfig.feinler.com: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Found AAAA record for autodiscover.feinler.net: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:27 CEST 2022 - Found AAAA record for autoconfig.feinler.net: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Found AAAA record for autodiscover.kaufelds.de: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Found AAAA record for autoconfig.kaufelds.de: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Found AAAA record for mail.feinler.net: 2a03:4000:6:364c:741b:8ff:fe99:3fd1 - skipping A record check
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Confirmed AAAA record with IP 2a03:4000:0006:364c:741b:08ff:fe99:3fd1, but HTTP validation failed
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Cannot validate any hostnames, skipping Let’s Encrypt for 1 hour.
mailcowdockerized-acme-mailcow-1 | Thu Jun 16 11:26:28 CEST 2022 - Use SKIP_LETS_ENCRYPT=y in mailcow.conf to skip it permanently.
mailcowdockerized-acme-mailcow-1 | OK
Ich bin nun echt am Ende. Funktioniert das nicht wegen DNSSEC oder stimmt etwas nicht mit Docker? Ich habe die ufw firewall disabled. Was kann es sonst noch sein, es scheint ja so als ob er den HTTP request nicht durch bekommt? Aber warum, und warum hat alles beim einrichten mit docker-compose v1 funktioniert?
- Edited
@Hindin-The-G Dein Nginx lauscht nicht auf IPv6, weshalb die HTTP validation über IPv6 nicht klappt. Du musst für Nginx die IPv6-Adressen manuell entragen:
Steht übrigens auch so in der Anleitung:
The web interface will only be accessible via v4 by default in the period from June - December 2022.
The reason for this is the dual compatibility between Compose v1 and v2.
Should you wish to access the web interface, as before by default via v6, please take a look at this chapter.
The 2022-12 update will restore the native IPv6 reachability from the UI.
heavygale Wenn ich das mache dann bekomme ich folgende Fehlermeldung:
Error response from daemon: driver failed programming external connectivity on endpoint mailcowdockerized-postfix-mailcow-1 (6e8360073beed190e9ed420e59dc165584ff58672e0289959bf6828f1fa950f6): Error starting userland proxy: listen tcp6 [::]:587: bind: address already in use
ich habe nun folgendes in die docker-compose.override.yml geschrieben:
`version: ‘2.1’
services:
dovecot-mailcow:
ports:
- ‘[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:143:143’
- ‘[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:993:993’
- ‘[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:110:110’
- ‘[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:995:995’
- ‘[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:4190:4190’
postfix-mailcow:
ports:
- '[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:25:25'
- '[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:465:465'
- '[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:587:587'
nginx-mailcow:
ports:
- '[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:80:80'
- '[2a03:4000:6:364c:741b:8ff:fe99:3fd1]:443:443'
`
Füge nur den nginx-Part hinzu - postfix und dovecot hören bereits auf IPv6.
heavygale : Hey super, danke dir. Nun läuft alles wieder. Das sollten Sie echt ein wenig besser in der Dokumentation erklären. Ich kämpfe nun seit 1 Woche damit rum.
In einer Testumgebung hat das Update problemlos geklappt. Danke schön für die obige Darstellung. So einfach hatte ich das nicht verstanden in der Anleitung. Muss mich jetzt mich auch mal richtig trauen.
Hat sich die Doku jetzt schon wieder geändert? Die Schritte zur Deinstallation von v1 sind nicht mehr da und scheinbar ist der Command jetzt doch wieder docker-compose
statt docker compose
? Etwas verwirrend.
Ja, find ich auch interessant… das Update-Skript hat mir nun wieder ein docker-compose standalone installiert und die IPv6-Bindings aus der override-Datei (und die dabei korrumpiert, weil deutlich mehr gelöscht wurde… ).
Nach dem neusten Update muss die Datei docker-compose.override.yml wieder gelöscht werden, ansonsten gibt es bei nginx einen Port-Fehler für IPv6. Das war knapp.