基本Dockerfile不运行CMD命令
我有一个简单的Dockerfile似乎并没有执行CMD命令。
FROM nginx #Expose port 80 EXPOSE 80 #Start nginx server #RUN service nginx start COPY startup_nginx.sh /startup_nginx.sh RUN chmod +x /startup_nginx.sh #CMD ["/usr/bin/wc","--help"] CMD ['/startup_nginx.sh']
可能是什么问题呢?
事实certificate,我需要双引号,而不是像这样的单一。
CMD ["/startup_nginx.sh"]
注意这在文档中并不明确,因为没有错误消息,所以应该将其拼写在某处。 它静静地失败,这使得debugging非常困难,因为启动脚本是创build正在运行的进程所需的,所以容器不会退出。
注意:有问题5701请求在JSONexpression式(如ENTRYPOINT
或CMD
中使用单引号时发生ENTRYPOINT
错误。
公关8486应该解决这个问题,但它只是添加一个testing用例,而不是实际的错误本身。
它确实解释了这个问题:
这个testing用例应该会产生一个错误,因为我们在CMD中传入的JSON数组使用单引号而不是双引号( 根据JSON规范 )。
这意味着我们把它解释为一个“string”而不是“JSON数组”,并把它传递给“sh -c
”,它应该在它上面