2017-10-19 1 views
2

서버 어플라이언스를 구현하기 위해 Dockerfile을 만들고 있습니다.실행되지 않는 Docker 파일

나는 내 파일을 완전하다고 믿었지만 그것을 구현할 때 나는 오류를 반환했다.

/docker-entrypoint.sh: line 22: /opt/author/application/bin/start-ppliance.sh: Permission denied 
/docker-entrypoint.sh: line 22: exec: /opt/author/application/bin/start-appliance.sh: cannot execute: Permission denied 

Docker 파일 자체에서 다음을 실행합니다.

RUN chmod -R 0750 /opt/author/ 
RUN chown -R USER1:USER1 /opt/author/ 

뿐만 아니라; Dockerfile 자체의 마지막 줄은에서

USER USER1 

;

CMD ["/opt/author/application/bin/start-appliance.sh", "run"] 

파일이 컨테이너 안에 있고 기본 사용자가 소유하고있어이 오류가 발생하는 이유가 명확하지 않습니다.

+0

다중 행 블록의 코드 형식을 지정하려면 편집기 (블록을 ​​선택했을 때)의'{} '또는 4 바이트 들여 쓰기를 사용하십시오. –

+2

Dockerfile 전체를 게시 할 수 있습니까? – MatTheWhale

+1

디버깅을 위해'ls -al/opt/author/application/bin /','echo $ (whoami)'와 함께 몇개의 RUN 명령어를 추가하면 도움이 될 것입니다. –

답변

1

이미 알고 있듯이 이론적으로는 chmod 750에서이를 처리해야하지만 파일에 실행 비트가 설정되어 있지 않은 경우이 문제가 발생합니다. 실제로 문제가있는 경우 디버그하는 한 가지 방법은 다른 CMD (docker run) 시간 (예 : docker run -it <image> sh)을 전달하고 스크립트 사용 권한을 ls -l으로 확인하는 것입니다. 종종 비트를 실행하지 않는 것이 범인입니다.

그렇지 않은 경우 VOLUME 지시문과 같은 항목이 사용중인 RUN의 영향을 무시할 수 있기 때문에 전체 Dockerfile로 질문을 명확히하는 것이 좋습니다.

+0

\ w 도커를 입력하면 run -u container_name -ti --entrypoint sh repo/container : ve.rs.io.n 그리고 x 비트가 설정된 운영 파일을 검토하십시오. Dockerfile의 구현 섹션은 다음과 같습니다. – Kyle

관련 문제