>백엔드 개발 >Golang >Kubernetes의 Go Docker 애플리케이션에서 시간대 정보와 관련된 \'해당 파일 또는 디렉터리가 없습니다\' 오류가 발생하는 이유는 무엇인가요?

Kubernetes의 Go Docker 애플리케이션에서 시간대 정보와 관련된 \'해당 파일 또는 디렉터리가 없습니다\' 오류가 발생하는 이유는 무엇인가요?

Patricia Arquette
Patricia Arquette원래의
2024-11-29 14:37:24620검색

Why is my Go Docker application on Kubernetes throwing a

시간대 정보가 포함된 바이너리 생성

Docker 컨테이너 애플리케이션을 Kubernetes 엔진에 배포할 때 다음에 대한 오류 메시지가 나타날 수 있습니다. zoneinfo.zip 파일이 없습니다. 이 문제를 해결하고 애플리케이션이 올바르게 초기화되도록 하기 위해 이 질문 및 답변 문서에서 자세한 솔루션을 제공합니다.

질문:

왜 "아니요" 오류가 발생합니까? Kubernetes에 배포된 Docker 컨테이너 애플리케이션에서 time/zoneinfo 패키지를 사용하려고 할 때 이러한 파일 또는 디렉터리" 오류 발생 엔진?

답변:

오류 메시지는 컨테이너 이미지가 시간대 정보가 포함된 zoneinfo.zip 파일을 찾을 수 없음을 나타냅니다. 이 문제를 해결하려면 새로운 tzdata 패키지가 포함된 Go 버전 1.15 이상을 활용하는 것이 좋습니다.

해결책:

옵션 1: Go 버전 1.15

  • Go로 Go 애플리케이션 구축 1.15 또는 후속 버전.
  • 이 작업을 수행하면 시간대 데이터베이스가 프로그램에 포함되므로 로컬 시스템에서 이를 로드할 필요가 없습니다.
  • tzdata 패키지를 포함하면 프로그램이 항상 시간대 정보를 쉽게 사용할 수 없는 환경에서도 시간대 정보에 액세스할 수 있습니다.

옵션 2: 다음을 사용하여 구축 -tags timetzdata(Go 1.14 이하)

  • -tags timetzdata 플래그를 사용하여 Go 애플리케이션을 구축하세요.
  • 이 플래그는 또한 프로그램에 시간대 데이터베이스를 포함합니다. 옵션 1과 동일한 기능을 제공합니다.
  • 두 방법 모두 프로그램 크기를 약 800만큼 늘립니다. KB.

추가 고려 사항:

  • Go 1.15를 사용하면 시간대 정보 버전이 사용된 Go 버전에 묶여 있다는 단점이 있습니다.
  • 최신 시간대 정보를 확보하려면 정기적으로 Docker를 업데이트하는 것이 좋습니다. image.

요약하자면 Go 버전 1.15 이상을 사용하거나 -tags timetzdata를 사용하여 빌드하면 Go 애플리케이션에 시간대 정보를 삽입하여 발생한 오류를 해결할 수 있습니다.

위 내용은 Kubernetes의 Go Docker 애플리케이션에서 시간대 정보와 관련된 \'해당 파일 또는 디렉터리가 없습니다\' 오류가 발생하는 이유는 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.