Dockerfile ENTRYPOINT 想换行怎么处理?

在 dockerfile 里经常会用 ENTRYPOINT 关键字,但是工作的过程中如果换行的话应该有固定格式,不能随便换行。所以记录一下。

比如我想执行这么一行命令:

ENTRYPOINT cd route \ && cmd

但是不想写在一行。

写法 本地 docker 执行结果 远程 docker 执行结果
ENTRYPOINT
cd route \
&& cmd
成功 build docker image 失败,不认 cd 命令
ENTRYPOINT
cd route && \
cmd
成功 build docker image 失败,不认 cd 命令
ENTRYPOINT cd route \
&& cmd
成功 成功

根据上面的表格,在上传到 CI pipeline 的 dockerfile 中,必须严格遵循该格式。

  • ENTRYPOINT 关键字必须同第一条命令位于同一行。
  • 换行符必须是 \ 且必须在行尾。
  • && 符必须在行首。
  • 不能使用中括号或引号包括整个或某个命令。