ตกลง ดังนั้นจึงมีงานมากมายที่เกี่ยวข้อง + การวิจัยมากมาย:
- คุณต้องมีคอนเทนเนอร์และคอนเทนเนอร์ของ MySQL แยกกัน
- docker-mailserver ต้องใช้บรรทัดเหล่านี้แทน
ภาพ
:
สร้าง:
บริบท: .
นักเทียบท่าไฟล์: Dockerfile
- Dockerfile ต้องเป็น:
จาก docker.io/mailserver/docker-mailserver:latest
RUN apt-get update && apt-get install -y dovecot-mysql
- อย่างที่คุณเห็นจะต้องเรียกใช้ด้วย
นักเทียบท่าเขียน
กับ --สร้าง
พารามิเตอร์
dovecot-mysql
ต้องติดตั้งเหมือนปลั๊กอินสำหรับรับรหัสผ่านจากฐานข้อมูล MySQL (ปลั๊กอินนี้ต้องเปิดใช้งานสำหรับ roundcube ในไฟล์ปรับแต่ง - เพื่อเปลี่ยนรหัสผ่านในฐานข้อมูลจาก roundcube)
- ใน
etc/dovecot/10-auth.conf
คุณต้องแสดงความคิดเห็น
!include auth-passwdfile.inc
กับ #
- ในไฟล์เดียวกัน uncomment
#!include-sql.conf.ext
- ในไฟล์
10-ssl.conf
ทำเส้น ssl=ใช่
- สิ่งนี้อาจจำเป็นสำหรับ
userdb
อีกด้วย
- สร้างตารางในฐานข้อมูลคอนเทนเนอร์ของคุณ
กล่องจดหมาย
ด้วยคอลัมน์ ชื่อผู้ใช้
, รหัสผ่าน
- เพิ่มผู้ใช้อย่างน้อยหนึ่งรายด้วยรหัสผ่าน
$1$...
- เข้ารหัส
dovecot.cf
ไฟล์ต้องมี ssl=ใช่
และคุณอาจต้องการเพิ่ม ปิดการใช้งาน_plaintext_auth=ใช่
- มี
/etc/dovecot
เป็นไดรฟ์ข้อมูล (นำไฟล์จากภายในคอนเทนเนอร์)
- ใน
/etc/dovecot/dovecot-sql.conf.ext
มี:
ไดรเวอร์ = mysql
เชื่อมต่อ = โฮสต์ = mail_mysql_cont dbname = db ผู้ใช้ = ชื่อผู้ใช้ รหัสผ่าน = root_passwd_for_db
รหัสผ่าน_query = \
เลือกชื่อผู้ใช้เป็นผู้ใช้, รหัสผ่าน \
จากกล่องจดหมายที่ชื่อผู้ใช้ = '%u'
user_query = \
เลือก '/tmp' AS home, 9999 AS uid, 9999 AS gid;
- ใน
/etc/dovecot/auth-sql.conf.ext
มี:
รหัสผ่าน {
ไดรเวอร์ = ตร.ม
args = /etc/dovecot/dovecot-sql.conf.ext
}
ฉันจะอัปเดตคำตอบในภายหลังเนื่องจากฉันจะแก้ไขปัญหาต่อไป
แก้ไข:
เพื่อให้การเปลี่ยนรหัสผ่านเป็นไปได้ใน Roundcube คุณต้องแนบฐานข้อมูล MySQL และตาราง กล่องจดหมาย
สร้างด้วยคอลัมน์อย่างน้อย ชื่อผู้ใช้
และ รหัสผ่าน
.