gpt4 book ai didi

ruby - 使 ruby​​ 可用于 Debian9 镜像时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:56 24 4
gpt4 key购买 nike

我关注了thesedebian9 镜像上安装 ruby 的说明(我需要旧版本的 ruby,即 2.1.5)

我还包括了一个额外的步骤,使其在所有用户登录时可用,即

echo "source /etc/profile.d/rvm.sh >> /etc/profile"

现在,当我登录到终端后运行我的容器时,ruby 可用:

$ docker run -ti registry/container:tag bash
root@f6805551226c:/# ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]

但是,当我在没有显式登录的情况下运行我的容器时,ruby 显然不可用,因为该文件不是源代码

docker run -it registry/container:tag ruby -v
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"ruby\": executable file not found in $PATH": unknown.

我该如何解决这个问题?

最佳答案

/etc/profile 仅在用户登录 shell 时起作用:

docker run -it registry/container:tag ruby​​ -v 只会将 ruby -v 设置为容器的 PID1,不会使用shell 作为容器的 PID1,所以 /etc/profile 将不起作用。

只有下一个会起作用:

docker run -it registry/container:tag bash -c "ruby -v"

当你使用docker run -ti registry/container:tag bash时,PID1是bash,所以/etc/profile会效果,因此您可以在路径中使用 ruby 。

关于ruby - 使 ruby​​ 可用于 Debian9 镜像时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56699889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com