1

依存関係が開発とテスト用の poetry.lock ファイルに指定されている python パッケージがあります。次に、パッケージをビルドして公開します。これは、本番環境の Docker イメージにインストールされます。しかし、ここに問題があります。公開されたパッケージには、pyproject.toml のtool.poetry.dependenciesセクションで指定された依存関係があり、poetry.lock とは異なる可能性があります。そのため、本番環境がテスト環境とは異なる依存関係になる可能性があります。

一貫性を実現する方法はいくつか考えられますが、どれもあまり良いとは思えません。

  1. pyproject.toml で、poetry.lock と同じセット バージョンを使用します。これにより、公開されたパッケージが dev/test と同じ依存関係を持つことが保証されます。しかし、この時点で、poetry.lock ファイルを保持する意味poetry installさえあります。これはうまくいくと思いますが、そもそもなぜpoetry.lockを持っているのか理解できません。

  2. プロダクション Docker イメージで、パッケージ リポジトリから poetry.lock ファイルをチェックアウトpoetry installし、パッケージ自体をインストールする前に実行します。ただし、これにより docker イメージのサイズが大きくなり、リポジトリがプライベートである場合は不要な構成が導入され、全体的に不自然に見えます。

私はPythonのこの部分にかなり慣れていないので、おそらくこれらの1つが「標準」ワークフローです。または、私は何かを完全に見逃しているだけかもしれません。回答ありがとうございます!

4

1 に答える 1