2017-04-05 73 views
0

我有一個docker-compose覆蓋文件用於在容器上運行測試。我想用不同的命令啓動我的節點服務器 - nyc node server.js。我有優先於正常的撰寫文件,像這樣一個碼頭工人,compose.coverage.yml文件:docker-compose不覆蓋使用啓動命令的命令

node: 
    command: nyc node server.js 

但是,它似乎永遠不會當我做docker-compose -f docker-compose.yml -f docker-compose.coverage.yml start node覆蓋命令。當我使用docker-compose run它覆蓋命令,但服務退出。有誰知道爲什麼它不會覆蓋命令使用開始?

+0

我在想,既然CMD是內置容器的一部分,它不可能覆蓋它,但運行在執行容器中的一個單獨的命令,無論CMD的?只是一個預感... –

+0

謝謝,我會嘗試 –

+0

工作!謝謝。 –

回答

1

docker-compose start將啓動現有停止容器。現有的容器已經有了該命令,並且不能更改它。

你想要做的是使用docker-compose up。這將查找對docker-compose.yml的更改,如果有任何更改,它將使用新選項重新創建容器,然後啓動或重新啓動它。

所以,你想是這樣的:

docker-compose -f docker-compose.yml -f docker-compose.coverage.yml up -d node