docker-compose: 2-3 минуты простоя, когда я меняю изображение в реестре Azure - PullRequest
0 голосов
/ 16 июня 2019

Я настроил следующее приложение:

version: '3'
services:
  nginx: 
    image: myregistry.azurecr.io/nginx:latest
    container_name: nginx
    ports:
      - 80:80
      - 443:443

  app2:
    image: myregistry.azurecr.io/app2:latest
    container_name: app2
    expose: 
      - 8080

nginx.conf:

events {
}
http{
server {
listen 80 default_server;
location / {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;

    proxy_pass http://app2:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

И все работает хорошо: обратный прокси-сервер запрашивает имя пользователя / пароль перед отправкой контента.

Теперь app2 постоянно меняется, и я установил скрипт, который загружает новое изображение в реестр Azure.

И тут возникает моя боль: каждый раз, когда я загружаю новую версию, я сохраняюПолучение 502 - Ошибка шлюза от nginx в течение 2-3 минут.

По истечении этого времени приложение снова становится доступным.Как так?Есть ли способ предотвратить это?Где обещанное лазурью 24/7?(

1 Ответ

0 голосов
/ 16 июня 2019

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

NGINX также кэширует DNS-запросы, поэтому он может еще некоторое время указывать на остановленный контейнер, пока не обновится кэш. См. эту запись документации для получения более подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...