我从docker hub下载了ubuntu基本镜像。现在,我正在尝试基于ubuntu映像构建一个新映像。但是,我希望ubuntu映像的默认命令是“ / bin / bash -c”而不是“ / bin / sh”,以便当我在Dockerfile中使用RUN时,它访问bash而不是sh。请注意,我在说的是同一图像的默认命令,而不是我要构建的图像。
Joh*_*mer 10
也许这可以帮助:
SHELL ["/bin/bash", "-c"]
参考: https ://github.com/moby/moby/issues/7281#issuecomment-389440503
我认为图像中没有默认命令ubuntu。当你跑步时
$ docker run ubuntu echo hi
hi
Run Code Online (Sandbox Code Playgroud)
它运行["/bin/echo", "hi"]。您可以通过运行来验证这一点
$ docker run ubuntu set
2014/06/20 08:38:54 exec: "set": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
set是 shell 中的内置命令,但 docker 尝试将其作为外部命令运行。
如果您想将默认 shell 从 dash 更改为 bash,您可以使用固定符号链接创建一个图像。这是一个 dockerfile:
FROM ubuntu
RUN ln -sf /bin/bash /bin/sh
Run Code Online (Sandbox Code Playgroud)
[编辑]
我刚刚意识到你在说什么。我不知道您是否可以更改RUN命令的默认值,但您可以像这样显式使用 /bin/bash :
RUN /bin/bash -c ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6430 次 |
| 最近记录: |