У нас есть несколько dockerized приложений PHP с пользовательскими образами докеров, так что функция PHP mail () действительно работает.
Когда мы создаем образы, мы копируем сертификаты в образ во время сборки. Это отлично работает ... в течение 90 дней.
Чтобы обновить, нам нужно закрыть веб-приложение, обновить LetsEncrypt вручную, затем заново собрать и повторно развернуть новый образ с новыми сертификатами.
Я чувствую, что смогу сделать это с именованными контейнерами, чтобы обновление было автоматическим, но я не могу осмыслить это.
У кого-нибудь есть рабочий playbook для этого?
В итоге ответ был таков: используйте именованные тома и добавьте сценарий для копирования сертификатов в тома на локальном диске с хоста докера. Это работает так:
/certs
.Этот последний шаг требует немного усилий. После создания именованного тома в первый раз вы должны использовать docker volume ls
и docker volume inspect
чтобы узнать, где находится этот том в файловой системе хоста. Обычно он находится где-то в / var / lib / docker.
Ваш сценарий post-hook из шага 4 выше просто копирует сертификаты из live-каталога напрямую в этот том докера, а ЗАТЕМ перезапускает контейнеры.