Skaffold 파일 동기화 및 핫 리로드(Hot reloading) 사용 설정

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Skaffold는 로컬 개발 워크플로의 효율성을 높이고 포드를 다시 빌드, 다시 배포, 다시 시작할 필요가 없도록 변경된 파일을 배포된 컨테이너에 복사하는 기능을 지원합니다. 즉, 정적 및 소스 코드 파일을 변경하면 몇 초 만에 변경사항이 적용되며 신속한 피드백 루프가 발생합니다.

정적 파일(예: HTML 및 CSS 파일)의 경우 이 파일 복사 동작을 파일 동기화라고 합니다.

소스 코드 파일의 경우 이 동작을 핫 리로드(Hot reloading)라고 하며 다음 파일 유형에서 작동합니다.

  • Go: *.go
  • 자바: *.java, *.kt, *.scala, *.groovy, *.clj
  • NodeJS: *.js, *.mjs, *.coffee, *.litcoffee, *.json

핫 리로드를 구성하면 Skaffold는 지원되는 파일의 변경사항을 감지하고 이러한 변경사항을 클러스터에서 실행 중인 컨테이너와 동기화하므로 번거롭게 이미지 다시 빌드하고 Pod를 다시 시작할 필요가 없습니다. 그러나 다른 파일 형식의 변경사항은 이미지 다시 빌드를 트리거합니다.

기본 빌더로 Buildpacks를 사용하면 자동 파일 동기화와 핫 리로드는 기본적으로 사용 설정됩니다. Docker와 같은 다른 빌더의 경우 맞춤설정할 아티팩트에 skaffold.yaml에서 sync 섹션을 지정할 수 있습니다.

동기화 설정은 다음 중 하나일 수 있습니다(선호도 순서).

  • auto(Jib 및 Buildpacks 아티팩트에만 해당)
  • infer
  • manual

모든 /static-html HTML 파일을 컨테이너의 static 폴더에 동기화하도록 manual 동기화를 지정한 경우 skaffold.yaml에 이 sync 섹션이 포함됩니다.

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

파일 동기화 및 동기화 규칙 지정에 대한 자세한 내용은 파일 동기화에 대한 Skaffold 가이드를 참조하세요.