RUN cd에 의존하는 작업 디렉터리 설정

이후 명령에도 적용할 작업 디렉터리는 WORKDIR로 선언하세요.

설명

RUN cd ...로 바꾼 디렉터리는 해당 RUN 안에서만 유지됩니다. 이후 명령에서도 같은 위치를 사용하려면 WORKDIR로 선언하세요. 한 명령 안에서만 임시로 이동하는 cd는 사용할 수 있습니다.

잠재적 영향

디렉터리 변경이 다음 명령에도 이어진다고 가정하면 파일을 다른 위치에서 처리하거나 빌드가 실패할 수 있습니다.

해결 방법

지속적으로 사용할 작업 위치를 WORKDIR의 절대 경로로 지정하고, 이후 명령의 상대 경로를 확인하세요.

예시

예시는 작업 디렉터리 선언을 비교합니다. 두 COPY 모두 절대 대상 경로를 사용하므로 복사 위치는 같습니다. NGINX_IMAGE에는 지원되는 NGINX 이미지 참조를 지정하세요.

변경 전

dockerfile
ARG NGINX_IMAGE
FROM ${NGINX_IMAGE}

RUN cd /usr/share/nginx/html
COPY index.html /usr/share/nginx/html

변경 후

dockerfile
ARG NGINX_IMAGE
FROM ${NGINX_IMAGE}

WORKDIR /usr/share/nginx/html
COPY index.html /usr/share/nginx/html

참조