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