Dovecot Docker kasutamine: erinevus redaktsioonide vahel
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
| (ei näidata sama kasutaja 5 vahepealset redaktsiooni) | |||
| 13. rida: | 13. rida: | ||
* Dockerhost - docker-ce |
* Dockerhost - docker-ce |
||
| − | === |
+ | ===Dovecot paigaldamine=== |
Docker compose |
Docker compose |
||
<pre> |
<pre> |
||
| + | root@dh-dovecot:~# cat /srv/dovecot/dc/docker-compose-dovecot.yml |
||
| + | name: p_dovecot |
||
| + | services: |
||
| + | svc_dovecot: |
||
| + | image: "dovecot/dovecot:2.4.4" |
||
| + | container_name: "cn_dovecot" |
||
| + | restart: unless-stopped |
||
| + | environment: |
||
| + | TZ: "Europe/Tallinn" |
||
| + | ports: |
||
| + | - "0.0.0.0:143:31143" |
||
| + | - "0.0.0.0:4190:34190" |
||
| + | volumes: |
||
| + | - "/srv/dovecot/volume/srv/vmail:/srv/vmail" |
||
| + | - "/srv/dovecot/volume/etc/dovecot/conf.d:/etc/dovecot/conf.d:ro" |
||
| + | - "/srv/dovecot/volume/etc/dovecot/ssl:/etc/dovecot/ssl:ro" |
||
| + | - "/srv/dovecot/volume/etc/dovecot/passwd:/etc/dovecot/passwd:ro" |
||
| + | - "/srv/dovecot/volume/etc/dovecot/master-users:/etc/dovecot/master-users:ro" |
||
| + | networks: |
||
| + | - nw_dovecot |
||
| + | logging: |
||
| + | driver: "journald" |
||
| + | options: |
||
| + | tag: "cn_dovecot" |
||
| + | |||
| + | networks: |
||
| + | nw_dovecot: |
||
| + | name: nw_dovecot |
||
</pre> |
</pre> |
||
| 27. rida: | 55. rida: | ||
===Dovecot seadistamine=== |
===Dovecot seadistamine=== |
||
| + | Autentse tõmmisega saabuva seadistuse esitamine |
||
| − | TODO |
||
| + | |||
| + | <pre> |
||
| + | root@dh-dovecot:~# cat /srv/dovecot_imre/dc/docker-compose-dovecot.yml |
||
| + | name: p_dovecot_imre |
||
| + | |||
| + | services: |
||
| + | svc_dovecot_imre: |
||
| + | image: "dovecot/dovecot:2.4.4" |
||
| + | container_name: "cn_dovecot_imre" |
||
| + | restart: unless-stopped |
||
| + | environment: |
||
| + | TZ: "Europe/Tallinn" |
||
| + | ports: |
||
| + | - "0.0.0.0:31143:31143" |
||
| + | - "0.0.0.0:34190:34190" |
||
| + | networks: |
||
| + | - nw_dovecot_imre |
||
| + | logging: |
||
| + | driver: "journald" |
||
| + | options: |
||
| + | tag: "cn_dovecot_imre" |
||
| + | |||
| + | networks: |
||
| + | nw_dovecot_imre: |
||
| + | name: nw_dovecot_imre |
||
| + | |||
| + | root@dh-dovecot:~# docker run --rm -it --privileged --pid=container:cn_dovecot --net=container:cn_dovecot nicolaka/netshoot find /proc/1/root/etc/dovecot -type f |
||
| + | /proc/1/root/etc/dovecot/conf.d/auth.conf |
||
| + | /proc/1/root/etc/dovecot/conf.d/mail.conf |
||
| + | /proc/1/root/etc/dovecot/conf.d/limits.conf |
||
| + | /proc/1/root/etc/dovecot/conf.d/fts.conf |
||
| + | /proc/1/root/etc/dovecot/conf.d/mail_log.conf |
||
| + | /proc/1/root/etc/dovecot/conf.d/ssl.conf |
||
| + | /proc/1/root/etc/dovecot/vendor.d/rootless.conf |
||
| + | /proc/1/root/etc/dovecot/master-users |
||
| + | /proc/1/root/etc/dovecot/passwd |
||
| + | /proc/1/root/etc/dovecot/dovecot.conf |
||
| + | </pre> |
||
| + | |||
| + | kus |
||
| + | |||
| + | * TODO |
||
| + | |||
| + | Kuna dovecot tõmmis on väga minimalistlik, siis seal sees toimuva jälgimiseks sobib nö kõrvalt sisse vaatamine teise konteineri abiga |
||
| + | |||
| + | <pre> |
||
| + | root@dovecot-01:~# docker run --rm -it --pid=container:cn_dovecot --net=container:cn_dovecot --volumes-from cn_dovecot nicolaka/netshoot |
||
| + | </pre> |
||
| + | |||
| + | kus |
||
| + | |||
| + | * natuke analoogne lähenemine nsenter programmi kasutamisele |
||
===Kasumine=== |
===Kasumine=== |
||
| 40. rida: | 120. rida: | ||
TODO |
TODO |
||
| + | |||
| + | ===Dovecot 2.2.3 -> 2.4.4 uuendamine=== |
||
| + | |||
| + | Asjaolud uues versioonis |
||
| + | |||
| + | ====Postkastide kataloog==== |
||
| + | |||
| + | Millises kataloogis postkastid asuvad, vanas määras selle üks parameeter |
||
| + | |||
| + | <pre> |
||
| + | root@postkast:~# doveconf mail_location |
||
| + | mail_location = maildir:/srv/vmail/%d/%n/mail |
||
| + | </pre> |
||
| + | |||
| + | Uues kolm parameetrit |
||
| + | |||
| + | <pre> |
||
| + | root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_driver |
||
| + | mail_driver = maildir |
||
| + | |||
| + | root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_home |
||
| + | mail_home = /srv/vmail/%{user | domain}/%{user | username} |
||
| + | |||
| + | root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_path |
||
| + | mail_path = ~/mail |
||
| + | </pre> |
||
| + | |||
| + | ====User kasutaja==== |
||
| + | |||
| + | Vanas versioonis |
||
| + | |||
| + | <pre> |
||
| + | root@postkast:~# cat /etc/dovecot/conf.d/auth-system.conf.ext |
||
| + | # Authentication for system users. Included from 10-auth.conf. |
||
| + | |||
| + | passdb { |
||
| + | driver = passwd-file |
||
| + | args = /etc/dovecot/passwd |
||
| + | } |
||
| + | |||
| + | userdb { |
||
| + | driver = static |
||
| + | args = uid=vmail gid=vmail home=/srv/vmail/%d/%n allow_all_users=yes |
||
| + | } |
||
| + | </pre> |
||
| + | |||
| + | uues versioonis |
||
| + | |||
| + | <pre> |
||
| + | root@dh-dovecot:~/20260823# cat /srv/dovecot/volume/etc/dovecot/conf.d/auth.conf |
||
| + | auth_mechanisms = plain login |
||
| + | |||
| + | passdb users { |
||
| + | driver = passwd-file |
||
| + | passwd_file_path = /etc/dovecot/passwd |
||
| + | } |
||
| + | |||
| + | userdb static { |
||
| + | fields { |
||
| + | uid = vmail |
||
| + | gid = vmail |
||
| + | home = /srv/vmail/%{user | domain}/%{user | username} |
||
| + | } |
||
| + | } |
||
| + | |||
| + | ... |
||
| + | </pre> |
||
| + | |||
| + | ====Master kasutaja==== |
||
| + | |||
| + | Vanas versioonis |
||
| + | |||
| + | <pre> |
||
| + | root@postkast:~# cat /etc/dovecot/conf.d/auth-master.conf.ext |
||
| + | passdb { |
||
| + | driver = passwd-file |
||
| + | master = yes |
||
| + | args = /etc/dovecot/master-users |
||
| + | pass = yes |
||
| + | } |
||
| + | |||
| + | root@postkast:~# grep auth-master.conf.ext /etc/dovecot/conf.d/10-auth.conf |
||
| + | !include auth-master.conf.ext |
||
| + | </pre> |
||
| + | |||
| + | Uues versioonis |
||
| + | |||
| + | <pre> |
||
| + | root@dh-dovecot:~/20260823# cat /srv/dovecot/volume/etc/dovecot/conf.d/auth.conf |
||
| + | auth_master_user_separator = * |
||
| + | |||
| + | passdb master { |
||
| + | driver = passwd-file |
||
| + | passwd_file_path = /etc/dovecot/master-users |
||
| + | master = yes |
||
| + | result_success = continue |
||
| + | } |
||
| + | ... |
||
| + | </pre> |
||
===Kasulikud lisamaterjalid=== |
===Kasulikud lisamaterjalid=== |
||
Viimane redaktsioon: 23. august 2026, kell 18:18
Sissejuhatus
TODO
Tööpõhimõte
TODO
Ettevalmistused
TODO
- nt Debian v. 13
- Dockerhost - docker-ce
Dovecot paigaldamine
Docker compose
root@dh-dovecot:~# cat /srv/dovecot/dc/docker-compose-dovecot.yml
name: p_dovecot
services:
svc_dovecot:
image: "dovecot/dovecot:2.4.4"
container_name: "cn_dovecot"
restart: unless-stopped
environment:
TZ: "Europe/Tallinn"
ports:
- "0.0.0.0:143:31143"
- "0.0.0.0:4190:34190"
volumes:
- "/srv/dovecot/volume/srv/vmail:/srv/vmail"
- "/srv/dovecot/volume/etc/dovecot/conf.d:/etc/dovecot/conf.d:ro"
- "/srv/dovecot/volume/etc/dovecot/ssl:/etc/dovecot/ssl:ro"
- "/srv/dovecot/volume/etc/dovecot/passwd:/etc/dovecot/passwd:ro"
- "/srv/dovecot/volume/etc/dovecot/master-users:/etc/dovecot/master-users:ro"
networks:
- nw_dovecot
logging:
driver: "journald"
options:
tag: "cn_dovecot"
networks:
nw_dovecot:
name: nw_dovecot
kus
- TODO
Dovecot seadistamine
Autentse tõmmisega saabuva seadistuse esitamine
root@dh-dovecot:~# cat /srv/dovecot_imre/dc/docker-compose-dovecot.yml
name: p_dovecot_imre
services:
svc_dovecot_imre:
image: "dovecot/dovecot:2.4.4"
container_name: "cn_dovecot_imre"
restart: unless-stopped
environment:
TZ: "Europe/Tallinn"
ports:
- "0.0.0.0:31143:31143"
- "0.0.0.0:34190:34190"
networks:
- nw_dovecot_imre
logging:
driver: "journald"
options:
tag: "cn_dovecot_imre"
networks:
nw_dovecot_imre:
name: nw_dovecot_imre
root@dh-dovecot:~# docker run --rm -it --privileged --pid=container:cn_dovecot --net=container:cn_dovecot nicolaka/netshoot find /proc/1/root/etc/dovecot -type f
/proc/1/root/etc/dovecot/conf.d/auth.conf
/proc/1/root/etc/dovecot/conf.d/mail.conf
/proc/1/root/etc/dovecot/conf.d/limits.conf
/proc/1/root/etc/dovecot/conf.d/fts.conf
/proc/1/root/etc/dovecot/conf.d/mail_log.conf
/proc/1/root/etc/dovecot/conf.d/ssl.conf
/proc/1/root/etc/dovecot/vendor.d/rootless.conf
/proc/1/root/etc/dovecot/master-users
/proc/1/root/etc/dovecot/passwd
/proc/1/root/etc/dovecot/dovecot.conf
kus
- TODO
Kuna dovecot tõmmis on väga minimalistlik, siis seal sees toimuva jälgimiseks sobib nö kõrvalt sisse vaatamine teise konteineri abiga
root@dovecot-01:~# docker run --rm -it --pid=container:cn_dovecot --net=container:cn_dovecot --volumes-from cn_dovecot nicolaka/netshoot
kus
- natuke analoogne lähenemine nsenter programmi kasutamisele
Kasumine
TODO
Haldamine
TODO
Dovecot tarkvara uuendamine
TODO
Dovecot 2.2.3 -> 2.4.4 uuendamine
Asjaolud uues versioonis
Postkastide kataloog
Millises kataloogis postkastid asuvad, vanas määras selle üks parameeter
root@postkast:~# doveconf mail_location mail_location = maildir:/srv/vmail/%d/%n/mail
Uues kolm parameetrit
root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_driver
mail_driver = maildir
root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_home
mail_home = /srv/vmail/%{user | domain}/%{user | username}
root@dh-dovecot:~/20260823# docker exec cn_dovecot doveconf mail_path
mail_path = ~/mail
User kasutaja
Vanas versioonis
root@postkast:~# cat /etc/dovecot/conf.d/auth-system.conf.ext
# Authentication for system users. Included from 10-auth.conf.
passdb {
driver = passwd-file
args = /etc/dovecot/passwd
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/srv/vmail/%d/%n allow_all_users=yes
}
uues versioonis
root@dh-dovecot:~/20260823# cat /srv/dovecot/volume/etc/dovecot/conf.d/auth.conf
auth_mechanisms = plain login
passdb users {
driver = passwd-file
passwd_file_path = /etc/dovecot/passwd
}
userdb static {
fields {
uid = vmail
gid = vmail
home = /srv/vmail/%{user | domain}/%{user | username}
}
}
...
Master kasutaja
Vanas versioonis
root@postkast:~# cat /etc/dovecot/conf.d/auth-master.conf.ext
passdb {
driver = passwd-file
master = yes
args = /etc/dovecot/master-users
pass = yes
}
root@postkast:~# grep auth-master.conf.ext /etc/dovecot/conf.d/10-auth.conf
!include auth-master.conf.ext
Uues versioonis
root@dh-dovecot:~/20260823# cat /srv/dovecot/volume/etc/dovecot/conf.d/auth.conf
auth_master_user_separator = *
passdb master {
driver = passwd-file
passwd_file_path = /etc/dovecot/master-users
master = yes
result_success = continue
}
...
Kasulikud lisamaterjalid
- TODO