programing

도커를 루트가 아닌 것으로 복사하려면 어떻게 해야 합니까?

instargram 2023. 10. 29. 18:59
반응형

도커를 루트가 아닌 것으로 복사하려면 어떻게 해야 합니까?

도커 이미지를 작성하는 동안 어떻게 해야 합니까?COPY결과 파일을 루트가 아닌 사용자가 소유하도록 이미지에 파일을 저장할 수 있습니까?

v17.09.0 이상 버전의 경우

선택적 플래그 사용--chown=<user>:<group>둘 중 하나로ADD아니면COPY명령들.

예를들면

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

--chown 플래그에 대한 설명서는 이제 주 도커 파일 참조 페이지에서 활성화됩니다.

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


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

도커가 지원하지 않습니다.COPY루트 이외의 사용자로서.할 필요가 있습니다.chown/chmod에 있는 파일COPY지휘.

도커 파일 예제:

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명령에서 다음과 같이 말했습니다.

모든 새 파일과 디렉터리는 UID와 GID가 0인 상태로 생성됩니다.


History 이 기능은 6119, 9943, 13600, 27303, 28499, 이슈 30110의 여러 GitHub 이슈를 통해 추적되었습니다.

이슈 34263은 옵션 플래그 기능을 구현한 문제이며 이슈 467은 문서를 업데이트했습니다.

나는 이것을 좋아했고 완벽합니다.

FROM node:lts-alpine3.17
RUN addgroup app && adduser -S -G app app
RUN mkdir /app && chown app:app /app
USER app
WORKDIR /app
COPY --chown=app:app package*.json .
RUN npm install
COPY --chown=app:app . .
EXPOSE 8090
CMD ["npm","start"]

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

반응형