0

我正在使用多个 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 - Array 和 ENTRYPOINT 方法,但无法弄清楚我收到错误的原因。

4

1 回答 1

3

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

CMD ["--port", "27017", "--dbpath", "/data/db", "--smallfiles"]将工作。

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

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

于 2014-06-24T17:02:09.367 回答