developer tip

Docker는 루트가 아닌 사용자로 어떻게 복사합니까?

optionbox 2020. 8. 27. 07:43
반응형

Docker는 루트가 아닌 사용자로 어떻게 복사합니까?


Docker 이미지를 빌드하는 동안 COPY루트가 아닌 사용자가 결과 파일을 소유하도록 이미지에 파일을 어떻게 삽입합니까?


버전 v17.09.0-ce 이상

또는 명령 --chown=<user>:<group>과 함께 선택적 플래그 사용하십시오 .ADDCOPY

예를 들면

COPY --chown=<user>:<group> <hostPath> <containerPath>

--chown 플래그에 대한 문서는 이제 기본 Dockerfile 참조 페이지에 있습니다.

문제 34263 이 병합되었으며 릴리스 v17.09.0-ce 에서 사용할 수 있습니다 .


v17.09.0-ce 이전 버전의 경우

Docker는 COPY루트 이외의 사용자로 지원하지 않습니다 . 당신은 필요 chown/ chmod파일 COPY 명령.

Dockerfile 예 :

from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
    chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]

v17.09.0-ce 이전의 COPY명령에 대한 Dockerfile 참조는 다음과 같이 말했습니다.

모든 새 파일 및 디렉토리는 UID 및 GID 0으로 작성됩니다.


역사 이 기능은 여러 GitHub의 문제를 추적하고있다 : 6119 , 9943 , 13600 , 27303 , 28499 , 문제 30110 .

문제 34263 은 선택적 플래그 기능을 구현 한 문제이며 문제 467 은 설명서를 업데이트했습니다.

참고 URL : https://stackoverflow.com/questions/44766665/how-do-i-docker-copy-as-non-root

반응형