Docker多行CMD或ENTRYPOINT

don*_*nie 33 docker dockerfile

由于有许多参数,我有一个非常长的命令行用于默认进程.我认为最简单的方法是创建一个脚本(例如.run.sh),然后在你的ENTRYPOINT或中调用这个脚本CMD.我想知道是否有办法制作你的ENTRYPOINT或多线CMD(我们写的方式RUN).例如.

ENTRYPOINT["/path/myprocess",
           "arg1",
           "arg2" ]
Run Code Online (Sandbox Code Playgroud)

我认为这是一个有效的语法,因为格式是json.但是,docker build抛出错误

Step 14 : ENTRYPOINT[
Unknown instruction: ENTRYPOINT[
Run Code Online (Sandbox Code Playgroud)

有没有办法可以拆分ENTRYPOINT成多行?

don*_*nie 60

这是dockerfile中的拼写错误.我错过了一个和space之间.Dockerfile支持多行,并通过终止行,与...相同.所以,就我而言,它可以ENTRYPOINT[ENTRYPOINTCMD\RUN

ENTRYPOINT [ "/path/myprocess", \
             "arg1",            \
             "arg2"             \
]
Run Code Online (Sandbox Code Playgroud)

  • 当我尝试使用多行 CMD 部分作为 CMD ["/bin/sh", "-c", \ "java", \ "-jar ..." \ ] 时,我的 linux docker 18.09.1 映像运行时执行了 java 而没有论据。必须切换到 CMD ["/bin/sh", "-c", \ "java, \ -jar ..." \ ] (删除了多行 java 参数之间的引号) (6认同)