vasyakrg / autoheal

Docker: autorestart container by state

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестирование и перезапуск контейнера по состоянию

Описание

  • при запуске создаются два контейнера:

    • test - простое приложение, которое поднимает два порта: 80 и 3000
    • 80 порт просто отвечает (или не отвечает) нам Ок
    • 3000 порт для управления работой порта 80

      curl http://0.0.0.0:3000

    • позволяет вам соответственно включать или отключать в приложении порт 80
  • второй контейнер служит для передергивания всех контейнеров, у которых лейб в контейнере "autoheal": "true"

Что получаем на выходе

  • как только в приложении к контейнере test падает порт 80, контейнер autoheal тут же передергивает его и возвращает в работу

Если не хочу или не могу пересобирать контейнер ?

  • достаточно описать инициализацию контейнера так:
services:
  test:
    build: ./test
    container_name: test
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80"]
      interval: 30s
      timeout: 2s
      retries: 1
      start_period: 20s
    labels:
      "autoheal": "true"
    ports:
      - 80:80
      - 3000:3000

Видео-урок

  • Запись по работе с проектом можно посмотреть тут
  • Этот и много других уроков тут
Автор

About

Docker: autorestart container by state


Languages

Language:JavaScript 77.0%Language:Dockerfile 23.0%