ENTRYPOINT&使用mongod的CMD命令会导致未知选项错误

时间:2014-06-24 15:28:45

标签: mongodb docker boot2docker

我正在使用多个Dockerfiles来设置我的服务器基础架构。我构建的Dockerfiles之一是MongoDB服务器,它将在后面的步骤中链接到正在运行的Web服务器应用程序。目前,运行我收到的MongoDB服务器时出现以下错误:

"Error parsing command line: unknown option port 27017"

在我的Dockerfile中,我有:

CMD ["--port 27017", "--dbpath /data/db", "--smallfiles"]    
ENTRYPOINT ["/usr/bin/mongod"]

当我使用而不是上述命令时,以下一切都有效:

CMD /usr/bin/mongod --port 27017 --dbpath /data/db --smallfiles

我更喜欢CMD - Array和ENTRYPOINT方法,但无法弄清楚我收到错误的原因。

1 个答案:

答案 0 :(得分:3)

使用json语法时,需要单独传递每个参数。它将每个元素视为一个,而在非json语法中,它将被shell拆分并视为两个。

CMD ["--port", "27017", "--dbpath", "/data/db", "--smallfiles"]将有效。

或者,我不知道mongo是否支持它,但大多数软件都支持它,你可以这样做:

CMD ["--port=27017", "--dbpath=/data/db", "--smallfiles"]因此它将作为一个元素传递,但将由mongo解释。