320x100
320x100

문제 상황

/

|__settings.json

|__A

     |__Dockerfile

|__B

     |__Dockerfile

위와 같은 상황에서 각 Dockerfile이 settings.json을 컨테이너 이미지 안에 복사를 해야하는 상황

그러나 `COPY ../settings.json .` 지시자를 사용해도 가져올 수 없다

 

 

 

이유

build context 바깥의 파일을 복사할 수 없기 때문

build context란 도커 데몬이 이미지를 빌드할 때 참조하는 경로인데, docker build 명령 시 인자로 넘어간다

빌드 명령을 실행하면 도커 클라이언트는 build context 안의 파일을 tar로 압축해 도커 데몬에게 넘긴다

이 때문에 부모 디렉터리의 파일을 복사할 수 없는 것

 

 

 

해결 방법

빌드 명령을 실행할 때 build context를 부모 디렉터리로 지정한다

부모디렉터리$> docker build -f A/dockerfile .

 

 

 

 

 

Reference

 

Dockerfile에 부모 디렉토리의 파일을 복사 하는 방법

Dockerfile의 COPY 명령어는 해당 Dockerfile과 같은 디렉토리에 있는 파일만 복사할 수 있다. 그래서 대부분 프로젝트의 루트 디렉토리에 Dockerfile을 작성한다. 그런데 Dockerize 하려는 프로그램이 부모

velog.io

 

300x250
728x90