在高山Linux上猛烈抨击



我无法将 bash 外壳放入高山容器中。

我从这个阿尔卑斯容器开始: gitlab/gitlab-runner:alpine

我正在此 dockerfile 中添加一个 bash shell 和其他配置:

from gitlab/gitlab-runner:alpine
ENV http_proxy=<corporate_proxy>
ENV https_proxy=<corporate_proxy>
RUN apk add vim wget curl nmap lsof bash bash-completion which
CMD ["/bin/bash"]
RUN ls -l /bin # THIS WORKS, I CAN SEE 'BASH' SHOW UP WITH 755 OWNED BY ROOT
RUN which bash # THIS ALSO WORKS
RUN /bin/bash -c "echo hi" # YES, THIS WORKS TOO

但是,当生成容器以通过以下方式使用 bash 外壳时: docker run -idt <image_name> /bin/bash,容器无法启动FATAL: Command /bin/bash not found.

请注意,在生成容器时,这些其他选项对我来说也会失败:ash, sh, /bin/ash, /bin/sh, etc

使用 --user root 运行容器也不起作用。

入口点是一个 GitLab Runner 脚本。将其更改为 bash 以获得外壳访问权限:

$ docker run -it --entrypoint /bin/bash <image_name>

事实证明,在容器的入口点中设置了一些时髦的东西。 我需要记住在通过 docker run 生成新容器时覆盖入口点。

在 Dockerfile 中添加此行解决了问题:

ENTRYPOINT: []

1- 验证容器是否完全加载:

docker ps

所以之后进入 bash 外壳,如下所示:

docker exec -it <<container_name>> bash

Alpine 没有 bash,请使用 sh 代替:

docker exec -it 64103333b32 /bin/sh

相关内容

  • 没有找到相关文章

最新更新