Postfix и Dovecot в контейнере Docker

Postfix и Dovecot в контейнере Docker 01Статья Postfix и Dovecot в контейнере Docker расскажет о том, как простейшую связку MTA и MAA развертывать автоматически с помощью технологий контейнеризации. Этот сценарий идеален для целей обкатки и тестирования почтовых сервисов (например для групп разработки и тестирования ПО для отладки почтового функционала разрабатываемого софта), но мало применим для реальных инфраструктур в продакшене.

Postfix и Dovecot в контейнере Docker

Все нюансы установки и настройки Postfix и Dovecot с использованием локального хранилища maildir я подробно рассказывал в одной из недавних статей — Базовая настройка Postfix и Dovecot. В этой же статье я хочу сделать упор на особенности развертывания абсолютно аналогичной конфигурации, но с помощью контейнеров Docker.

Dockerfile и все необходимое для сборки образа добро я выложил на GitHub — postfix-dovecot-maildir. Обратите внимание на тестовые ветки, возможно там будет более актуальная информация.

Подготовка

Установка Docker подробно расписана в официальной документации 1.

Для выкачивания репозитория с GitHub вам потребуется Git, установить его можно командой:

Советую создать отдельную папку, чтобы не мусорить в текущем каталоге, и сразу в неё перейти:

Далее скачиваем репозиторий командой:

Примечание: я воспользуюсь тестовой веткой, поскольку она включает наиболее  свежие изменения. Обратите внимание, что код в этой ветке теоретически может быть неработоспособным (на то она и тестовая, чтобы тестировать изменения. Ваш Кэп). Чтобы выкачать основную рабочую ветку, просто уберите ключ -b и имя ветки Test-branche.

В текущем каталоге вы обнаружите новую папку с именем postfix-dovecot-maildir, в ней и будет нужный нам для сборки образа dockerfile. Перейдем в папку и проверим её содержимое:

Все эти файлы вы можете скачать и вручную без использования Git, но это не очень удобно. К тому же, если в каком-либо репозитории файлов будет больше, выкачивание вручную — не лучшая затея.

Сборка

Теперь настал самый ответственный момент — сборка образа. Сделать это можно с помощью команды:

Где:

  • domain.tld — DNS-имя почтового домена;
  • mailuser — имя основного пользователя в системе, для которого будет создан ящик и на которое будут перенаправлена входящая почта с дефолтных адресов (например postmaster@bissquit.ru)
  • mailserver — имя собираемого образа (можно задать исключительно техническое имя, например testcontainer01).

Далее последует длительный процесс сборки контейнера. Периодически будут создаваться промежуточные контейнеры (на каждую отдельную инструкцию dockerfile), потом удаляться. Вы увидите что-то на подобии этого:

Потребуется подключение к интернету, если у вас не выкачены необходимые образы, а также если в dockerfile есть соответствующие команды (например apt-get update и др.).

Запуск

Образ собран, пришла пора запустить на его основе контейнер. Выполним команду:

Если все прошло нормально, то выполнив команду docker ps -a, вы увидите запущенный контейнер.

Если понадобиться зайти внутрь контейнера для изменения каких-либо настроек или для диагностики, то это можно сделать командой:

где b8610b5cea19 — идентификатор контейнера (доступен также по команде docker ps -a). По окончанию сеанса наберите exit.

Отличия развертывания через Docker

Поскольку развертывание контейнера происходит в автоматическом режиме без участия пользователя, существует ряд отличий по сравнению с традиционным вариантом, когда все делается вручную.

Установка пакетов

В процессе установки пакетов пользователю могут быть заданы вопросы о желаемой конфигурации. При автоматическом сценарии развертывания важно эти ответы определить заранее.

Примечание: Например Postfix обычно задает вопросы о типе настройки (см. Установка Postfix на Debian) и почтовом имени.

Сделать это можно дополнив базу данных debconf 2. Для этого нужно создать файл (у меня он будет иметь имя postfix_silent_install.txt) с содержимым (файл построчный, каждая строка должна иметь четыре значения):

А потом вставляем ответы в БД командой debconf-set-selections 3:

У меня в dockerfile эта операция описана инструкцией:

Следующий момент: нужно ставить пакеты в неинтерактивном режиме, чтобы пользователю не задавались никакие вопросы. Для этого необходимо задать тип пользовательского интерфейса командой DEBIAN_FRONTEND=noninteractive 4.

На все вопросы да/нет отвечать утвердительно поможет ключ -y утилиты apt-get. Ну и для совсем тихого режима используем ключ -q. В итоге команда установки выглядит следующим образом:

На этом с установкой разобрались.

Конфиги

Можно бесконечным количеством команд postconf определять все ключевые параметры в Postfix. То же самое придется проделать и с Dovecot. А можно просто взять и скопировать уже готовые и отлаженные конфиги. Это наиболее гуманный способ, именно поэтому у меня в dockerfile присутствуют две инструкции:

ADD main.cf /etc/postfix/main.cf

ADD dovecot.conf /etc/dovecot/dovecot.conf

Они просто копируют два файла из текущего каталога внутрь контейнера в заданное место.

Надеюсь статья внесла ясность во все вопросы касательно использования Docker для развертывания связки Postfix + Dovecot.

comments powered by HyperComments
3humiliate
2022-06-18 18:51:13
<strong>3intolerance</strong>
dissertation proposal example
2022-07-05 14:48:38
<strong>thesis vs dissertation https://professionaldissertationwriting.org/</strong>
medical dissertation writing services
2022-07-05 18:56:51
<strong>whats a dissertation https://professionaldissertationwriting.com/</strong>
doctoral dissertation writing assistance
2022-07-05 20:37:43
<strong>mba dissertation writing services https://helpwithdissertationwritinglondon.com/</strong>
phd dissertation editing help
2022-07-05 22:52:29
<strong>writing my dissertation https://dissertationwritingcenter.com/</strong>
doctoral dissertation defense
2022-07-06 01:52:39
<strong>dissertation presentation https://dissertationhelpexpert.com/</strong>
creative writing lindenberg
2022-07-06 03:40:35
<strong>dissertation printing https://accountingdissertationhelp.com/</strong>
online edd no dissertation
2022-07-06 06:15:42
<strong>powerpoint for creative writing https://examplesofdissertation.com/</strong>
phd dissertation example
2022-07-06 09:31:06
<strong>dissertation write https://writing-a-dissertation.net/</strong>
doctoral dissertation help your
2022-07-06 11:17:55
<strong>help with dissertation https://bestdissertationwritingservice.net/</strong>
acknowledgements dissertation
2022-07-06 15:27:53
<strong>buy a dissertation https://businessdissertationhelp.com/</strong>
dissertation writing assistance
2022-07-06 21:52:14
<strong>how to write a dissertation https://writingadissertationproposal.com/</strong>
dissertation
2022-07-07 02:53:18
<strong>best dissertation writing service https://dissertationhelperhub.com/</strong>
dissertation writing guide
2022-07-07 05:44:58
<strong>writing an abstract for a dissertation https://customthesiswritingservices.com/</strong>
mgm casino online nj
2022-07-25 19:29:31
<strong>casino online nj https://download-casino-slots.com/</strong>
bet online casino no deposit bonus codes
2022-07-25 21:47:56
<strong>river online casino https://firstonlinecasino.org/</strong>
raging bull casino online slots
2022-07-26 00:41:24
<strong>golden nugget online casino pa https://onlinecasinofortunes.com/</strong>
mohegan online casino
2022-07-26 02:51:20
<strong>caesars online casino pa https://newlasvegascasinos.com/</strong>
casino online terpercaya
2022-07-26 05:11:57
<strong>caesars online casino https://trust-online-casino.com/</strong>
online casino like chumba
2022-07-26 08:22:59
<strong>no deposit bonus online casino https://onlinecasinosdirectory.org/</strong>
gila river casino online
2022-07-26 09:28:49
<strong>biggest online casino https://9lineslotscasino.com/</strong>
2022-07-26 13:24:37
<strong>riversweeps online casino app https://free-online-casinos.net/</strong>
mgm casino online pa
2022-07-26 14:26:48
<strong>ocean casino online login https://internet-casinos-online.net/</strong>
online casino free spins
2022-07-26 20:28:23
<strong>online casino ca https://1freeslotscasino.com/</strong>
vegas casino online
2022-07-26 22:19:21
<strong>borgota casino online https://vrgamescasino.com/</strong>
maryland live online casino
2022-07-27 02:15:31
<strong>online casino for real money no deposit https://casino-online-roulette.com/</strong>
inferno online casino
2022-07-27 05:32:18
<strong>online casino spain https://casino-online-jackpot.com/</strong>
maryland live casino online gambling
2022-07-27 07:55:55
<strong>online casino roulette https://onlineplayerscasino.com/</strong>
casino online no deposit bonus
2022-07-27 13:13:55
<strong>online casino bonus code https://all-online-casino-games.com/</strong>
real money online casino california
2022-07-27 13:48:59
<strong>online vegas casino https://casino8online.com/</strong>
buy pia vpn
2022-08-07 15:36:29
<strong>best vpn service https://freevpnconnection.com/</strong>
astrill vpn
2022-08-07 16:42:13
<strong>free vpn download https://shiva-vpn.com/</strong>
best free vpn for mac
2022-08-07 22:52:12
<strong>free vpn apk https://ippowervpn.net/</strong>
avast secure vpn
2022-08-08 02:42:49
<strong>best ios vpn https://superfreevpn.net/</strong>
best vpn client
2022-08-08 07:00:03
<strong>best browser vpn https://rsvpnorthvalley.com/</strong>
hiv gay black men dating sites
2022-08-23 14:02:32
<strong>gay dating long term relationship oriented guys into spanish https://gay-singles-dating.com/</strong>
gay dating advice
2022-08-23 17:30:20
<strong>gay dating advice forums https://gayedating.com/</strong>
international gay dating website
2022-08-23 19:43:21
<strong>naked gay dating https://datinggayservices.com/</strong>
lesbian cowgirls
2022-08-24 14:41:32
<strong>dating websites https://onlinedatingbabes.com/</strong>
singles sites
2022-08-24 19:04:16
<strong>date women free https://adult-classifieds-online-dating.com/</strong>
local single women near me
2022-08-24 22:31:50
<strong>dating seiten uster https://online-internet-dating.net/</strong>
single friends dating
2022-08-25 00:31:38
<strong>personal dating https://speedatingwebsites.com/</strong>
datng websites
2022-08-25 02:09:13
<strong>usa free dating sites https://datingpersonalsonline.com/</strong>
pof (dating website)
2022-08-25 04:22:39
<strong>free online chat and dating sites https://wowdatingsites.com/</strong>
sex dating
2022-08-25 06:39:43
<strong>datting https://lavaonlinedating.com/</strong>
which online dating site is best
2022-08-25 08:44:13
<strong>top dating sites in usa https://freeadultdatingpasses.com/</strong>
n dating site
2022-08-25 11:50:01
<strong>plenty fish date site https://virtual-online-dating-service.com/</strong>
adilt dating
2022-08-25 13:42:41
<strong>zoosk dating https://zonlinedating.com/</strong>
caesar casino online nj
2022-08-30 08:44:32
<strong>bet online casino https://onlinecasinos4me.com/</strong>
online casino fast payout
2022-08-30 15:16:07
<strong>clubwpt online poker and casino https://online2casino.com/</strong>
tropicana casino online
2022-08-30 19:11:46
<strong>no deposit sign up bonus online casino https://casinosonlinex.com/</strong>
men 4 you gay chat
2022-09-03 01:21:27
<strong>gay sex chat roulette https://newgaychat.com/</strong>
100% free gay chat line
2022-09-03 05:29:17
<strong>geek gay chat https://gaychatcams.net/</strong>
random gay webcam chat
2022-09-03 11:58:46
<strong>zoom cams gay sex chat https://gaychatspots.com/</strong>
zoom cam rooms gay chat
2022-09-03 14:44:33
<strong>gay universe chat https://gay-live-chat.net/</strong>
gay chicago webcam chat software
2022-09-03 19:45:52
<strong>gay chat rooms of pa https://chatcongays.com/</strong>
gay advise chat
2022-09-04 03:54:15
<strong>gay chat rooms of pa https://gayphillychat.com/</strong>
gay video chat tumblr
2022-09-04 06:41:12
<strong>gay phone chat lines https://gaychatnorules.com/</strong>
free seattle wa gay and bi mens chat sites
2022-09-04 12:18:24
<strong>fee gay chat https://gaymusclechatrooms.com/</strong>
gay men webcame and chat
2022-09-04 16:16:00
<strong>chat aveneu gay https://free-gay-sex-chat.com/</strong>
gay chat cam ramdoom
2022-09-04 23:20:19
<strong>free one on one gay sex chat on camera for masterbation https://gayinteracialchat.com/</strong>
what is the best paper writing service
2022-10-20 18:47:48
<strong>custom written papers https://term-paper-help.org/</strong>
where to buy resume paper
2022-10-20 19:17:26
<strong>paper writers https://sociologypapershelp.com/</strong>
thesis paper help
2022-10-20 20:40:54
<strong>help with paper https://uktermpaperwriters.com/</strong>
where can i find someone to write my paper
2022-10-20 21:53:01
<strong>best paper writers https://paperwritinghq.com/</strong>
professional paper writers
2022-10-21 03:31:29
<strong>college paper writing service https://top100custompapernapkins.com/</strong>
help with writing a paper for college
2022-10-21 05:40:56
<strong>write my apa paper https://researchpaperswriting.org/</strong>
buy papers online for college
2022-10-21 07:25:01
<strong>pay to do my paper https://writingpaperservice.net/</strong>
help me write my paper
2022-10-21 09:06:15
<strong>write my paper reviews https://buyessaypaperz.com/</strong>
customized writing paper
2022-10-21 10:17:49
<strong>write my sociology paper https://mypaperwritinghelp.com/</strong>
pay to do paper
2022-10-21 12:16:48
<strong>college paper writing service https://writemypaperquick.com/</strong>
pay someone to do my paper
2022-10-21 13:44:16
<strong>help me write my paper https://essaybuypaper.com/</strong>
buy school papers online
2022-10-21 14:25:54
<strong>where to buy papers https://papercranewritingservices.com/</strong>
need someone to write my paper for me
2022-10-21 16:21:19
<strong>paper writing service https://premiumpapershelp.com/</strong>
Яндекс.Метрика