Я пытаюсь настроить одинаковую среду с одним docker-compose.yml для разработки и производства с помощью докеров-контейнеров, используя docker compose и ecs-cli от AWS, но у меня возникают проблемы с настройкой (Let's Encrypt) SSL-сертификатов.
В настоящее время у меня есть 2 контейнера (см. Код ниже) в конфигурации docker-compose.yml.Одним из них является стандартное изображение комара с пользовательской конфигурацией, которое я перестроил и сохранил в реестре приватных контейнеров, а другое - стандартное изображение certbot, которое я использую.С этой конфигурацией я попытался запустить в разработке с «docker-compose up» и для развертывания с «ecs-cli compose up».
version: '3'
services:
mosquitto:
image: {CUSTOM MOSQUITTO IMAGE}
entrypoint: mosquitto -c /mosquitto/config/mosquitto.conf -v
volumes:
- letsencrypt:/etc/letsencrypt
ports:
- "8883:8883"
# ONLY DIFFERENCE BETWEEN DEV/PROD ENV
# logging:
# driver: awslogs
# options:
# awslogs-group: mqtt_broker
# awslogs-region: eu-central-1
# awslogs-stream-prefix: web
certbot:
image: "certbot/certbot"
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --noninteractive; sleep 12h & wait $${!}; done;'"
volumes:
- letsencrypt:/etc/letsencrypt
ports:
- "80:80"
# ONLY DIFFERENCE BETWEEN DEV/PROD ENV
# logging:
# driver: awslogs
# options:
# awslogs-group: certbot
# awslogs-region: eu-central-1
# awslogs-stream-prefix: web
У меня следующая проблема: При разработке я не могу запросить(первоначальный) сертификат certbot, поскольку он не запрашивается у целевого домена (очевидно).Я попробовал --manual
от certbot, но, похоже, у этого есть некоторые недостатки, и я пока не могу заставить его работать автономно.В результате у докерного контейнера нет начальных сертификатов при развертывании в производство.Однако без сертификатов контейнер от комаров падает сразу же во время развертывания.
Кажется, я застрял в цикле проблемы курица / яйцо, и я не могу выяснить, как это решить в devOps.Является ли моя текущая установка неправильной, что эта проблема возникает?Или я что-то упускаю?До сих пор я не нашел другого способа запустить настройку нескольких контейнеров без необходимости поддерживать отдельные файлы для сред разработки и разработки.