在 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 关键字必须同第一条命令位于同一行。
- 换行符必须是 \ 且必须在行尾。
- && 符必须在行首。
- 不能使用中括号或引号包括整个或某个命令。