mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-10-17 20:42:46 +00:00
Dockerfile add shell label
Signed-off-by: Kang Huaishuai <khs1994@khs1994.com>
This commit is contained in:
33
image/dockerfile/shell.md
Normal file
33
image/dockerfile/shell.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# SHELL 指令
|
||||
|
||||
格式:`SHELL ["executable", "parameters"]`
|
||||
|
||||
`SHELL` 指令可以指定 `RUN` `ENTRYPOINT` `CMD` 指令的 shell,Linux 中默认为 `["/bin/sh", "-c"]`
|
||||
|
||||
```docker
|
||||
SHELL ["/bin/sh", "-c"]
|
||||
|
||||
RUN lll ; ls
|
||||
|
||||
SHELL ["/bin/sh", "-cex"]
|
||||
|
||||
RUN lll ; ls
|
||||
```
|
||||
|
||||
两个 `RUN` 运行同一命令,第二个 `RUN` 运行的命令会打印出每条命令并当遇到错误时退出。
|
||||
|
||||
当 `ENTRYPOINT` `CMD` 以 shell 格式指定时,`SHELL` 指令所指定的 shell 也会成为这两个指令的 shell
|
||||
|
||||
```docker
|
||||
SHELL ["/bin/sh", "-cex"]
|
||||
|
||||
# /bin/sh -cex "nginx"
|
||||
ENTRYPOINT nginx
|
||||
```
|
||||
|
||||
```docker
|
||||
SHELL ["/bin/sh", "-cex"]
|
||||
|
||||
# /bin/sh -cex "nginx"
|
||||
CMD nginx
|
||||
```
|
Reference in New Issue
Block a user