2014-12-16 3 views
0

rpm 파일의 java를 docker centos 이미지에 설치하려고합니다.동일한 컨테이너에서 COPY 및 RUN 명령을 실행하는 방법은 무엇입니까?

> Step 0 : FROM centos:latest 
---> **34943839435d** 
Step 1 : COPY . jdk-6u45-linux-x64-rpm.bin 
---> **2055e5db6ae9** 
Removing intermediate container 7ae13aaa4424 
Step 2 : RUN chmod +x jdk-6u45-linux-x64-rpm.bin &&  sh jdk-6u45-linux-x64-rpm.bin 
---> Running in **c4d6b63576bc** 
jdk-6u45-linux-x64-rpm.bin: jdk-6u45-linux-x64-rpm.bin: is a directory 
2014/12/16 06:03:34 The command [/bin/sh -c chmod +x jdk-6u45-linux-x64-rpm.bin && sh jdk-6u45-linux-x64-rpm.bin] returned a non-zero code: 126 

오류는 다른 컨테이너로 인한 것 같습니다. 같은 컨테이너에서 명령을 실행하는 방법?

도커 파일은 다음과 같이 COPY

FROM centos:latest 

# Install Java. 
COPY . jdk-6u45-linux-x64-rpm.bin 

RUN chmod +x jdk-6u45-linux-x64-rpm.bin && \ 
     sh jdk-6u45-linux-x64-rpm.bin 

답변

2

구문은 다음과 같습니다

COPY <src>... <dest> 

그래서 COPY . jdk-6u45-linux-x64-rpm.binjdk-6u45-linux-x64-rpm.bin로 현재 디렉토리를 복사 의미한다. 따라서 오류.

이 당신이 원하는 무엇을 제공해야합니다 : 당신이 제대로 경로를 설정하지 않은 탓

당신의 RUN 명령이 실제로 같은 컨테이너에서 실행되는
COPY jdk-6u45-linux-x64-rpm.bin jdk-6u45-linux-x64-rpm.bin 
+0

내 바보 같은 내용을 참조하십시오. 고마워요. :) –

+0

당신은 오신 것을 환영합니다. – zero323

0

명령 자체가 간단하지 못했습니다.

다음

빌드하고 제대로 실행 매우 유사한 고정 표시기 파일의 예입니다 (이 정확히 실행 명령이 무엇을하고 있는지 그대로 그런데,/빈/쉬 -c 필요는 없음)
FROM centos:latest 

COPY test.bin /root/ 
RUN /bin/sh -c "chmod +x /root/test.bin" 

실행 명령에 대한 자세한 내용은 https://docs.docker.com/reference/builder/#run

관련 문제