docker组成失败,错误“没有指定的命令”

用run命令启动容器

docker run -it -d -p 8888:8888 install_advisor node src/server 

按预期工作。 但是试图用docker-compose来调用它会导致错误:

“错误:顾问程序无法为服务顾问创build容器:没有指定任何命令”

我究竟做错了什么?

docker-compose.yml的内容

 advisor: build: context: . dockerfile: DockerfileAdvisor ports: - "8888:8888" restart: always privileged: true 

DockerfileAdvisor的内容

 FROM XYZ ENTRYPOINT [ "node", "src/server" ] 

我有点惊讶,你的解决scheme不工作,因为它是。 但是你可以用几种方法修复它。 这里有一些build议:

1)将DockerFileAdvisor文件更改为

 FROM XYZ COMMAND [ "node", "src/server" ] 

2)如果DockerFileAdvisor确实只包含问题中显示的两行,则甚至不需要它。 只需在docker-compose.yml指定image: XYZcommand: [ "node", "src/server" ]

 advisor: image: XYZ ports: - "8888:8888" restart: always privileged: true command: [ "node", "src/server" ] 

也许你想看一看Docker文档中ENTRYPOINTCOMMAND指令是如何一起玩的。 简而言之,使用ENTRYPOINT可以使图像看起来像一个可执行文件,并使用COMMAND来传递参数。