请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于CMD的格式

为什么是CMD ["flask", "run"] 而不是 CMD ["flask run"]
如果要执行多条命令应该怎么写 CMD 呢?

正在回答 回答被采纳积分+3

1回答

麦兜搞IT 2021-09-15 15:08:43

您可以参考下一些官方镜像的Dockerfile,大部分需要写entrypoint的脚本的,因为启动命令比较复杂。CMD只适合一些简单的入口命令

0 回复 有任何疑惑可以回复我~
  • 提问者 慕圣7354801 #1
    其实我想问的是 CMD 后面为什么要跟一个 list 并且用逗号把命令拆分成几个 item。
    现在我找到答案了。
    如果用 string,则意味着执行 /bin/sh -c command
    如果用list,则意味着直接执行 command。此时,shell 就是 container 默认的 shell,而不一定是 /bin/sh
    
    另外,ENTRYPOINT 后面如果带 list,则会把 CMD 当作它的 arguments。但如果 ENTRYPOINT 后面没带 list 却带了 string,则 CMD 就会被忽略,无论写啥都没用。
    
    https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact
    回复 有任何疑惑可以回复我~ 2021-10-05 21:28:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信