Ok, deci a fost multă muncă implicată + multe cercetări:
- trebuie să aveți container MySQL separat și containere care îl folosesc
- docker-mailserver trebuie să folosească aceste linii în loc de
imagine
:
construi:
context: .
dockerfile: Dockerfile
- Dockerfile trebuie să fie:
DE LA docker.io/mailserver/docker-mailserver:latest
RUN apt-get update && apt-get install -y dovecot-mysql
- după cum puteți vedea, trebuie să fie rulat cu
docker-compune
cu --construi
parametru
dovecot-mysql
trebuie instalat așa cum este pentru pluginul pentru obținerea parolei din baza de date MySQL (acest plugin trebuie să fie activat pentru roundcube în fișierul de configurare - pentru a schimba parolele din baza de date din roundcube)
- în
etc/dovecot/10-auth.conf
trebuie sa comentezi
!include auth-passwdfile.inc
cu #
- în același fișier decomentează
#!include auth-sql.conf.ext
- în dosar
10-ssl.conf
face linie ssl=da
- acest lucru poate fi necesar pentru
userdb
de asemenea
- creați în baza de date container un tabel
cutie poștală
cu coloane nume de utilizator
, parola
- adăugați cel puțin un utilizator cu parolă
$1$...
- criptat
porumbel.cf
fișierul trebuie să aibă ssl=da
și poate doriți să adăugați disable_plaintext_auth=da
- avea
/etc/dovecot
ca volum (luați fișierele din interiorul containerului)
- în
/etc/dovecot/dovecot-sql.conf.ext
avea:
driver = mysql
connect = host=mail_mysql_cont dbname=db user=nume utilizator parola=root_passwd_for_db
interogare_parolă = \
SELECTAȚI numele de utilizator AS utilizator, parola \
DIN căsuța poștală WHERE nume de utilizator = '%u'
user_query = \
SELECT '/tmp' AS home, 9999 AS uid, 9999 AS gid;
- în
/etc/dovecot/auth-sql.conf.ext
avea:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
Voi actualiza răspunsul mai târziu, deoarece voi lucra în continuare la problemă.
EDITAȚI | ×:
Pentru a face posibilă schimbarea parolei în Roundcube, trebuie să aveți atașată baza de date MySQL și un tabel cutie poștală
creat cu cel puțin coloane nume de utilizator
și parola
.