Docker-compose失败,出现错误"未指定命令"

时间:2016-11-24 06:29:48

标签: node.js docker

使用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" ]

1 个答案:

答案 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文档中ENTRYPOINTCOMMAND指令如何一起发挥作用。简而言之,使用ENTRYPOINT,您可以将图像看作可执行文件,并使用COMMAND为其传递参数。