-
при запуске создаются два контейнера:
- 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