我从docker集线器下载了ubuntu基础镜像。现在我正在尝试在ubuntu镜像的基础上构建一个新的镜像。然而,我希望ubuntu镜像的默认命令是"/bin/bash -c“而不是"/bin/ sh”,这样当我在Dockerfile中使用RUN时,它会访问bash而不是sh。请注意,我说的是同一映像的默认命令,而不是我试图构建的映像。
发布于 2014-06-20 16:43:53
我不认为在ubuntu镜像中有默认的命令。当你运行时
$ docker run ubuntu echo hi
hi它运行["/bin/echo", "hi"]。可以通过运行以下命令来验证这一点
$ docker run ubuntu set
2014/06/20 08:38:54 exec: "set": executable file not found in $PATHset是shell中的内置命令,但docker尝试将其作为外部命令运行。
如果您希望将默认shell从dash更改为bash,您可以使用固定的符号链接创建一个映像。这是一个dockerfile:
FROM ubuntu
RUN ln -sf /bin/bash /bin/sh编辑
我刚意识到你在说什么。我不知道您是否可以更改RUN命令的默认值,但您可以显式使用/bin/bash,如下所示:
RUN /bin/bash -c ...发布于 2016-09-12 05:16:43
您可以使用:
RUN ["/bin/bash", "-c", "<command>"]
发布于 2021-07-05 17:58:43
也许这能有所帮助:
SHELL ["/bin/bash", "-c"]
参考:https://github.com/moby/moby/issues/7281#issuecomment-389440503
https://stackoverflow.com/questions/24317603
复制相似问题