将 bash 二进制文件添加到 "scratch" docker 映像



我正在尝试将bash添加到"FROM Scratch"docker映像中。

我已经从 docker hub 的官方 bash docker 镜像中复制了一个 bash 二进制文件(https://hub.docker.com/_/bash)

docker run -d bash:latest sleep 100
docker cp "$bash_container_id":/usr/local/bin/bash .

我的 Dockerfile 如下

FROM jaegertracing/all-in-one:latest
COPY bin/bash /bin
ENV PATH "$PATH:bin/bash"
RUN ["bash"]

在构建时,导致

Sending build context to Docker daemon  5.213MB
Step 1/4 : FROM jaegertracing/all-in-one:latest
latest: Pulling from jaegertracing/all-in-one
023a144cdcf7: Already exists 
d247ed88ca7d: Already exists 
dc4682d67823: Already exists 
Status: Downloaded newer image for jaegertracing/all-in-one:latest
---> b64ba73d1fa4
Step 2/4 : COPY bin/bash /bin
---> b6e8ae824d24
Step 3/4 : ENV PATH "$PATH:bin/bash"
---> Running in eda2042dff57
Removing intermediate container eda2042dff57
---> f1288ded6fcf
Step 4/4 : RUN ["bash"]
---> Running in 616c80b0cb8c
OCI runtime create failed: container_linux.go:348: starting container process caused "exec: "bash": executable file not found in $PATH": unknown

jaegertracing/all-in-one映像使用的是不包含任何内容的"暂存"基础映像(无 sh、无 bash 等) 出于调试原因,我正在尝试向其添加 bash。

有什么建议吗?提前致谢

您没有正确配置$PATH。路径是要在其中查找可执行文件的一系列目录,而不是可执行文件本身的路径。另外,由于您要bin/bash移动到/bin/bash,因此您不必担心将bin/bash添加到路径中。但无论哪种方式,你想要的要么是

  1. ENV PATH "$PATH:bin"
  2. ENV PATH "$PATH:/bin"

我相信你想要的是选项 #2,因为它是你复制 bash 的地方。

相关内容

  • 没有找到相关文章

最新更新