如何在Dockerfile中运行plenv / rbenv?

我想用plenvplenv中安装perl 5.16。 apt-get只能得到5.14。 plenv将在$HOME/.plenv/versions/5.16.2/安装perl,我需要在$HOME/.profile添加一些行:

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

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

但是在Dockerfile中,我需要编写source $HOME/.profile && plenv shell 5.16.2 everyline,然后运行一些perl命令。 docker没有执行$HOME/.profile ,这是一个没有login的shell?

尽pipe我可以在每次RUN之前编写这样的命令,但是我怎么能在CMD做到这一点呢?

docker工可以通过一些设置来解决这个问题吗?

您可以使用ENTRYPOINT命令在每次执行之前添加一些东西,或者只需将.profile移动到.bashrc中即可。

事实上,docker是一个没有login的shell,它不会运行起来,只需执行请求的进程。