如何在Dockerfile中运行plenv/rbenv?

4

我想使用plenv在Docker镜像中安装Perl 5.16。但是apt-get只能获取5.14版本的Perl。 plenv将把Perl安装在$HOME/.plenv/versions/5.16.2/目录下,我需要在$HOME/.profile文件中添加一些内容:

export PATH="$HOME/.plenv/bin:$PATH"
eval "$(plenv init -)"

然后运行plenv shell 5.16.2来切换到新版本。

但是在Dockerfile中,我需要在运行一些perl命令之前的每一行写source $HOME/.profile && plenv shell 5.16.2。docker没有执行$HOME/.profile,这是非登录shell吗?

尽管我可以在每个RUN之前编写这样的命令,但如何在CMD行中执行此操作?

docker能否通过某些设置解决这个问题?

1个回答

2
你可以使用ENTRYPOINT命令在每次执行之前添加一些内容,或者将你的.profile简单地移动到你的.bashrc中。
实际上,Docker是一个无需登录的shell,它不会运行upstart,只需执行所请求的进程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接