2015-06-12 21 views
7

Tôi đang có một trình tạo docker thiết lập một thùng chứa cơ sở dữ liệu, một thùng chứa ứng dụng và một vùng chứa tải trước cơ sở dữ liệu với dữ liệu cần thiết.Docker Soạn với một Hộp Chấm dứt

Tôi muốn bắt đầu tất cả các vùng chứa cùng với docker-compose up trong khi vùng chứa tải trước chấm dứt sau khi hoàn thành nó hoạt động với exit 0.

Nhưng chấm dứt một container này có xuống thiết lập hoàn chỉnh với thông điệp:

composesetup_load_1 exited with code 0 
Gracefully stopping... (press Ctrl+C again to force) 
Stopping composesetup_app_1... 
Stopping composesetup_db_1... 

Có cách nào của việc có nhiều container với nhau cuộc sống thời gian trong một thiết lập Docker-soạn? Nếu có, làm thế nào?

Trả lời

4

Giải pháp tạm thời của tôi là giữ cho thùng chứa tải sẵn chạy bằng cách thêm tail -f /dev/null vào cuối tập lệnh điểm nhập cảnh. Điều này giữ cho quá trình chạy, trong khi không có gì thực tế xảy ra.

+0

Di chuyển mượt mà, dude. – Neil

+0

Đây có phải là phương pháp phổ biến để làm việc này không? Có cách "đúng"/"chính thức" để thực hiện việc này không? Tôi thích giải pháp này, trong cả hai trường hợp. – IcyFlame

0

Sử dụng -d option tại docker-compose up -d sẽ chạy quy trình ở chế độ tách rời. Điều này tránh sự cần thiết phải giết dịch vụ bằng Ctrl + C và do đó dừng các thùng chứa.

Lưu ý: Tôi đang asumming bạn đã giết quá trình bằng Ctrl + C từ thông báo "Gracefully stopping... (press Ctrl+C again to force)" mà bạn đã chia sẻ.

+1

Không, tôi đã không chấm dứt quá trình với Ctrl + C quá trình vừa hoàn thành công việc của nó và do đó chấm dứt với 'thoát 0'. Vì vậy, chạy docker-compose với tùy chọn '-d' là không có giải pháp. –

+1

@white_gecko, ok, cảm ơn vì đã làm rõ. Hành vi là sau đó như thể cờ '--abort-on-container-exit' được thiết lập? – atfornes

+1

Ok, có thể cờ này là giải pháp… khi tôi đăng câu hỏi, ít nhất hành vi này là mặc định. –