У меня Traefik в качестве веб-сервера. Он генерирует acme.json
, который содержит ключи SSL моего веб-сайта. Traefik очень хорошо разбирается в ключах SSL и автоматически запрашивает их по истечении срока их действия.
Я настраиваю почтовый сервер, который должен будет использовать ключи SSL для отправки электронных писем. Эти ключи нужно будет получить, когда они будут обновлены с помощью traefik. Сценарию с именем dumpcerts.sh
можно указать путь к acme.json
для извлечения ключей SSL. Я также могу заменить это сценарием python, чтобы все было согласовано с моим проектом.
Затем мне нужно будет обновить свои записи DNS, но это выходит за рамки этого вопроса.
Фрагмент моего docker-compose
файла:
traefik:
image: traefik:1.7-alpine
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./config/traefik/traefik.toml:/etc/traefik/traefik.toml:ro
- ./config/traefik/acme/:/etc/traefik/acme/
mailserver:
build:
context: ./config/mailserver
dockerfile: Dockerfile-email
volumes:
- ./config/mailserver/acme/:/etc/traefik/acme/
Я понятия не имею, как делать этот процесс копирования обновленного файла через контейнер каждые X дней, а затем запускать программу. Я думаю, что добавление acme.json
в качестве тома на почтовый сервер является правильным (это автоматически копирует acme, если он изменяется? Или это просто при запуске контейнера?). Затем я мог бы добавить сценарий cronjob на почтовый сервер для запуска сценария извлечения сертификатов, и он должен работать. Есть ли лучший способ сделать это через Docker или это звучит правильно?
Мой файл докеров для почтового сервера:
FROM debian:stable
MAINTAINER David F. <david-frick@protonmail.com>
ARG DEBIAN_FRONTEND=noninteractive
CMD ["entrypoint.sh"]
где точка входа строит почтовый сервер.