ホームページ >バックエンド開発 >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 パッケージを使用しようとすると、「このようなファイルまたはディレクトリ」エラーが発生するEngine?

回答:

このエラー メッセージは、コンテナー イメージがタイム ゾーン情報を含む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 と同じ機能を提供します。
  • どちらの方法でも、プログラムのサイズが約 1 倍増加します。 800 KB.

追加の考慮事項:

  • Go 1.15 の使用には、タイムゾーン情報のバージョンが Go のバージョンに関連付けられているという欠点があります。
  • 最新のタイムゾーン情報を確実に利用できるようにするには、次のことを考慮してください。 Docker イメージを定期的に更新します。

要約すると、Go バージョン 1.15 以降を使用するか、-tags timetzdata を使用してビルドすることで、タイム ゾーン情報を Go アプリケーションに埋め込み、発生したエラーを解決できます。 .

以上がKubernetes 上の Go Docker アプリケーションがタイム ゾーン情報に関連する「そのようなファイルまたはディレクトリはありません」というエラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。