빌드 컨텍스트

빌드 컨텍스트 (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을 두고 COPYADD 같은 명령으로 컨텍스트의 파일을 이미지로 가져올 수 있어요. 컨텍스트를 작게 유지하면 빌더로 보내는 데이터가 줄어 빌드가 빨라지고 캐시 무효화 가능성도 낮아져요. 불필요한 파일은 .dockerignore로 제외할 수 있어요.

더 알아보기 (Learn more)