我有一个docker-compose覆盖文件,用于在容器上运行测试。我想用不同的命令启动我的节点服务器 - nyc node server.js
。我有一个docker-compose.coverage.yml文件覆盖正常的撰写文件,如下所示:
node:
command: nyc node server.js
然而,当我docker-compose -f docker-compose.yml -f docker-compose.coverage.yml start node
时,它似乎永远不会覆盖命令。当我使用docker-compose run
时,它会覆盖命令,但服务会退出。有谁知道为什么它不会使用start覆盖命令?
答案 0 :(得分:2)
docker-compose start
将启动现有,已停止容器。现有容器已经具有烘焙命令,您无法对其进行更改。
您要做的是使用docker-compose up
。这将寻找对docker-compose.yml的更改,如果有任何要更改的内容,它将使用新选项重新创建容器,然后启动或重新启动它。
所以你想要这样的东西:
docker-compose -f docker-compose.yml -f docker-compose.coverage.yml up -d node