我正在使用多个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方法,但无法弄清楚我收到错误的原因。
答案 0 :(得分:3)
使用json语法时,需要单独传递每个参数。它将每个元素视为一个,而在非json语法中,它将被shell拆分并视为两个。
CMD ["--port", "27017", "--dbpath", "/data/db", "--smallfiles"]
将有效。
或者,我不知道mongo是否支持它,但大多数软件都支持它,你可以这样做:
CMD ["--port=27017", "--dbpath=/data/db", "--smallfiles"]
因此它将作为一个元素传递,但将由mongo解释。