使用run命令启动容器
docker run -it -d -p 8888:8888 install_advisor node src/server
按预期工作。但是尝试使用docker-compose来实现它会导致错误:
"错误:for advisor无法为服务顾问创建容器:否 命令指定"
我做错了什么?
docker-compose.yml的内容
advisor:
build:
context: .
dockerfile: DockerfileAdvisor
ports:
- "8888:8888"
restart: always
privileged: true
DockerfileAdvisor的内容
FROM XYZ
ENTRYPOINT [ "node", "src/server" ]
答案 0 :(得分:2)
我有点惊讶你的解决方案不能正常工作。但你可以通过几种方式修复它。这里有一些建议:
1)将您的DockerFileAdvisor
文件更改为
FROM XYZ
COMMAND [ "node", "src/server" ]
2)如果DockerFileAdvisor
确实只包含问题中显示的两行,则您甚至不需要它。只需在image: XYZ
中指定command: [ "node", "src/server" ]
和docker-compose.yml
:
advisor:
image: XYZ
ports:
- "8888:8888"
restart: always
privileged: true
command: [ "node", "src/server" ]
也许您想了解一下Docker文档中ENTRYPOINT
和COMMAND
指令如何一起发挥作用。简而言之,使用ENTRYPOINT
,您可以将图像看作可执行文件,并使用COMMAND
为其传递参数。