2014-11-12 4 views
1

Docker에 rbenv를 설치하려고하는데 작동하는 것처럼 보이지만 쉘을 다시로드 할 수 없습니다. 나는이 프로그램을 실행할 때우분투/debian에 rbenv 설치

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 -g r -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 

내가 이해에서, 나는 그래서 난 루비 버전을 설치할 수있는 현재 쉘을 다시로드해야합니다. 내가 올바른 길을 가고 있는지 확실하지 않습니다. Using rbenv with Docker

답변

1

나는 부두 노동자가 어떻게 작동하는지 모르겠지만, 어쩌면 당신이 당신의 PATHrbenv 실행 파일을 가지고에서 당신을 방지하는 단계 당신 source ~/.bashrc를 놓친 것 같아 :

또한 참조하십시오. 처음으로 rbenv을 실행하고 도움이되는지 확인하기 전에 바로 추가해보십시오.

절대 경로를 사용하여 항상 PATH 문제를 해결할 수 있습니다. rbenv 대신 $HOME/.rbenv/bin/rbenv을 실행 해보십시오.

정상적으로 작동하면 rbenv가 성공적으로 설치되었으며 PATHbin 디렉토리가 올바르게 설정되어 있지 않음을 나타냅니다.

그것은 예를 들어, 당신은 고정 표시기는이 같은, 당신의 PATH ENV PATH 명령을 통해 설정할 수 있다는 게시 다른 질문을 읽고 보이는

: 당신이 있는지 확인해야

ENV PATH $HOME/.rbenv/bin:/usr/bin:/bin 

그러나 당신은 모두를 포함하는 것이 다양한 경로가 필요합니다.

+0

나는 실제로 시도하지만 난 얻을 :/빈/SH : 1 : 소스 :를 찾을 수 없습니다. 기묘한. 어쩌면 슬림 한 버전의 라이브러리를 사용해서는 안됩니다. – Rimian

+1

@Rimian, 나는 내 대답을 다른 제안으로 업데이트했다. 내구력이있는 해결책은 아니지만 적어도이 속도 위반을 극복하는 데 도움이 될 것입니다. –

+0

그래, 내가 앞으로 나아갈 수 있다고 생각해. 많은 감사합니다! – Rimian

4

RUN 명령은/bin/sh 아래의 모든 것을 실행하므로 bashrc는 어느 지점에서나 평가되지 않습니다.

/bin/sh을 사용한다의 PATH에 rbenv를 추가 할이

&& export PATH="$HOME/.rbenv/bin:$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 -g r -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...