Tôi có tập tin soạn thảo docker với PostgreSQL và ứng dụng của tôi, như thế này:
version: '3'
services:
postgresql:
image: postgres:9.6.6
ports:
- 9932:5432
expose:
- "5432"
environment:
- POSTGRES_PASSWORD=pass
restart: always
volumes:
- /data:/var/lib/postgresql/data
myapp:
image: myapp
links:
- postgresql
depends_on:
- "postgresql"
restart: always
ports:
- "5000:5000"
Vấn đề là restart: always
chính sách đó dường như không hoạt động khi tôi giết container (mô phỏng sự cố ứng dụng bằng cách sử dụng docker kill
) và docker-compose không khởi động lại container của tôi, mặc dù Mã thoát là 137 . Tôi quan sát hành vi tương tự khi tôi sử dụng restart: on-failure
chính sách. Các phiên bản 2
và 3
của docker-compose hoạt động giống nhau. Hệ thống của tôi là Ubuntu Server 16.04 x64.
Câu hỏi của tôi là:
- Tại sao docker-compose không khởi động lại container bị hỏng (bị giết)?
- Làm thế nào để kiểm tra nếu chính sách khởi động lại hoạt động?