2014-10-07 23 views
9

Tôi gặp sự cố khi nút khởi động vĩnh viễn trong vùng chứa docker, nếu tôi khởi chạy thủ công, thay vào đó lệnh giống trong Dockerfile, khi xây dựng và bắt đầu vùng chứa, thoát. Các công trình lệnh trong bash:Lỗi khi bắt đầu nút với vĩnh viễn trong vùng chứa docker

docker run -it container_name bash forever start -c 'node --harmony' /my/path/app.js 

Tôi cố gắng để đặt lệnh trong Dockerfile nhưng container không bắt đầu

CMD forever start -c 'node --harmony' /my/path/app.js 
+0

Tạo một kịch bản bash nhỏ mà bắt đầu điều đó cho bạn. Đây là những gì chúng ta làm. – tkone

+0

như là một thay thế, sử dụng docker khởi động lại luôn luôn chính sách – milan

+0

Chỉ tò mò, tại sao sử dụng mãi mãi với docker? Tại sao không có nút docker chạy trực tiếp? –

Trả lời

20

Google Group discussion

Forever start script.js chạy ở chế độ nền. Để chạy forever ở mặt trước, hãy thử forever script.js.

Điều này bắt đầu mãi mãi ở tiền cảnh, đó là những gì Docker cần. Hãy nhớ rằng một thùng chứa là "còn sống" chỉ miễn là quá trình được xác định trong CMD được thiết lập và chạy. Kể từ khi bắt đầu mãi mãi như một daemon, lệnh thoát ra và docker cũng sẽ thoát.

CMD forever -c 'node --harmony' /my/path/app.js 
+3

Hãy nhớ rằng, hiện tại có ** [một vấn đề mở] (https://github.com/foreverjs/forever/issues/729) ** ngăn không cho nền trước chạy mãi mãi thoát. – Gaston

0

Hãy thử sử dụng cú pháp mảng:

CMD ["forever", "start", "-c", "node --harmony", "/my/path/app.js"] 
+0

Không, vấn đề tương tự, không hoạt động – hellb0y77

-1

Không hoạt động , tôi đã thử với 2 lệnh:

CMD ["forever","start","-c","'node --harmony'","/my/path/app.js"] 
.210

CMD ["forever","start","-c","node --harmony","/my/path/app.js"] 

Nếu nhập vào bình chứa và khởi động forever start -c 'node --harmony' /my/path/app.js công trình

0

Đặt trong Dockerfile của bạn:

CMD forever app.js 
Các vấn đề liên quan