Что имеем:
2 docker-контейнера: app (node.js) и nginx (reverse-proxy)
Требование:
Иметь минимальный простой сервиса.
Некоторые запросы могут выполняться долгое время. Важно вернуть ответ на запрос, который пришел до деплоя.
Суть проблемы:
При обновлении проекта (docker-compose build && docker-compose up -d) имеем простой 5-10сек. (время запуска node.js в контейнере app).
Как я себе представляю решение:
1. Использование Green/Blue паттерна. Не смог найти простого решения (без костылей)
2. Стек Docker Swarm
Подскажите максимально простой подход к деплою с нулевый простоем (при отсутсвии DevOps'a).
docker-compose.yml
version: '3.3'
services:
app:
build:
context: .
restart: unless-stopped
env_file: .env
nginx:
build: ./docker/nginx
restart: unless-stopped
depends_on:
- app
ports:
- ${APP_PORT}:80
volumes:
- ./static:/var/www:cached