빌드 컨텍스트
빌드 컨텍스트 (Build context)
docker build 명령은 Dockerfile과 컨텍스트로부터 Docker 이미지를 빌드해요.
출처: 문서
본문
빌드 컨텍스트란? (What is a build context?)
빌드 컨텍스트는 빌드가 접근할 수 있는 파일의 집합이에요. 빌드 명령에 넘기는 위치 인자(positional argument)가 빌드에 사용할 컨텍스트를 지정해요:
$ docker build [OPTIONS] PATH | URL | -
^^^^^^^^^^^^^^
빌드의 컨텍스트로 다음 중 어떤 것을 넘겨도 돼요:
- 로컬 디렉터리의 상대/절대 경로
- Git 저장소, tarball, 평문 파일의 원격 URL
- 표준 입력(standard input)을 통한 명령
파일시스템 컨텍스트 (Filesystem contexts)
파일시스템 빌드 컨텍스트는 컨텍스트 안의 파일·디렉터리를 참조할 수 있어요. 파일시스템 빌드 컨텍스트는 재귀적으로 처리돼요:
- 로컬 디렉터리나 tarball을 지정하면 모든 하위 디렉터리가 포함돼요.
- 원격 Git 저장소를 지정하면 저장소와 모든 서브모듈이 포함돼요.
사용할 수 있는 파일시스템 컨텍스트 유형에 대한 자세한 내용은 다음을 참고해요:
- 로컬 파일 (Local files)
- Git 저장소 (Git repositories)
- 원격 tarball (Remote tarballs)
텍스트 파일 컨텍스트 (Text file contexts)
빌드 컨텍스트가 평문 텍스트 파일이면, 그 파일의 내용을 컨텍스트로 써요.
컨텍스트와 Dockerfile (Context and Dockerfile)
컨텍스트 안에 Dockerfile을 두고 COPY나 ADD 같은 명령으로 컨텍스트의 파일을 이미지로 가져올 수 있어요. 컨텍스트를 작게 유지하면 빌더로 보내는 데이터가 줄어 빌드가 빨라지고 캐시 무효화 가능성도 낮아져요. 불필요한 파일은 .dockerignore로 제외할 수 있어요.