我正在使用多个Dockerfile来设置服务器基础架构。我构建的Dockerfile之一是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-数组和ENTRYPOINT方法,但无法弄清楚为什么会收到错误。

最佳答案

使用json语法时,您需要单独传递每个参数。它将每个元素视为一个元素,而在非json语法中,它将被 shell 拆分并视为两个元素。
CMD ["--port", "27017", "--dbpath", "/data/db", "--smallfiles"]将起作用。

另外,我不知道mongo是否支持它,但是大多数软件都支持,您可以这样做:
CMD ["--port=27017", "--dbpath=/data/db", "--smallfiles"],因此它将作为一个元素传递,但将由mongo解释。

关于mongodb - 带有mongod的ENTRYPOINT和CMD命令导致未知的选项错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24390620/

10-16 06:25