Итак, было проделано много работы + много исследований:
- у вас должен быть отдельный контейнер MySQL и контейнеры, использующие его
- docker-mailserver должен использовать эти строки вместо
изображение:
строить:
контекст: .
докерфайл: Докерфайл
- Докерфайл должен быть:
ОТ docker.io/mailserver/docker-mailserver: последний
RUN apt-get update && apt-get install -y dovecot-mysql
- как вы можете видеть, он должен запускаться с
docker-compose с --строить параметр
голубятня-mysql должен быть установлен так же, как и для плагина для получения пароля из базы данных MySQL (этот плагин должен быть включен для roundcube в файле конфигурации - для смены паролей в базе данных из roundcube)
- в
etc/dovecot/10-auth.conf вам нужно прокомментировать
!include auth-passwdfile.inc с #
- в этом же файле раскомментировать
#!include auth-sql.conf.ext
- в файле
10-ssl.conf сделать линию ssl=да
- это может понадобиться для
пользовательская база данных также
- сделать в вашей контейнерной базе данных таблицу
почтовый ящик с колоннами имя пользователя, пароль
- добавить хотя бы одного пользователя с паролем
$1$... - зашифровано
dovecot.cf файл должен иметь ssl=да и вы можете добавить disable_plaintext_auth = да
- имеют
/etc/голубятня как том (взять файлы внутри контейнера)
- в
/etc/dovecot/dovecot-sql.conf.ext имеют:
драйвер = mysql
connect = host=mail_mysql_cont dbname=db user=username password=root_passwd_for_db
пароль_запрос = \
ВЫБЕРИТЕ имя пользователя КАК пользователь, пароль \
ИЗ почтового ящика, ГДЕ имя пользователя = '%u'
пользовательский_запрос = \
ВЫБЕРИТЕ '/tmp' AS home, 9999 AS uid, 9999 AS gid;
- в
/etc/dovecot/auth-sql.conf.ext имеют:
БД {
драйвер = sql
аргументы = /etc/dovecot/dovecot-sql.conf.ext
}
Я обновлю ответ позже, так как буду работать над проблемой дальше.
РЕДАКТИРОВАТЬ:
Чтобы сделать возможным изменение пароля в Roundcube, вам необходимо подключить базу данных MySQL и таблицу почтовый ящик создано как минимум из столбцов имя пользователя и пароль.