在docker ubuntu / debian上安装rbenv
我想在Docker上安装rbenv这似乎工作,但我不能重新加载shell。
FROM node:0.10.32-slim RUN \ apt-get update \ && apt-get install -y sudo RUN \ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ && groupadd r \ && useradd r -m -gr -g sudo USER r RUN \ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv \ && echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc \ && echo 'eval "$(rbenv init -)"' >> ~/.bashrc RUN rbenv # check if it works...
当我运行这个我得到:
docker build . .. Step 5 : RUN rbenv /bin/sh: 1: rbenv: not found
据我所知,我需要重新加载当前的shell,所以我可以安装ruby版本。 不知道我是否在正确的轨道上。
另请参阅: 在Docker中使用rbenv
RUN命令执行/ bin / sh下的所有内容,因此你的bashrc在任何时候都不会被撤销。
用这个
&& export PATH="$HOME/.rbenv/bin:$PATH" \
这会将rbenv附加到/ bin / sh的PATH。
完整的Dockerfile
FROM node:0.10.32-slim RUN \ apt-get update \ && apt-get install -y sudo RUN \ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ && groupadd r \ && useradd r -m -gr -g sudo USER r RUN \ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv \ && echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc \ && echo 'eval "$(rbenv init -)"' >> ~/.bashrc \ && export PATH="$HOME/.rbenv/bin:$PATH" RUN rbenv # check if it works...
我不知道Docker是如何工作的,但似乎你可能错过了一个步骤,在这个步骤中,你需要inputsource ~/.bashrc
,这会阻止你在你的PATH
中使用rbenv
可执行文件。 在第一次尝试运行rbenv
之前尝试添加,看看是否有帮助。
您也可以使用绝对path来解决PATH
问题。 试着运行$HOME/.rbenv/bin/rbenv
。
如果这样的话,表明rbenv已经成功安装了,而且你的PATH
没有被正确设置为包含它的bin
目录。
从阅读你发布的其他问题看来,docker允许你通过ENV PATH
命令设置你的PATH
,例如:
ENV PATH $HOME/.rbenv/bin:/usr/bin:/bin
但是你应该确保你包含了所有你需要的各种path。