⚠️
poetry v2.0 から poetry export がデフォルトで使用できなくなった件
経緯
AWS Lambda x Docker x Poetry の構成で運用しているアプリケーションがあるのですが、デプロイ(Dockerイメージの作成)に突然失敗していました。
Dockerfile では poetry をインストールし、poetry export
で requirements.txt を出力していました。
Dockerfile
...
RUN pip install poetry
RUN poetry export -f requirements.txt -o requirements.txt --without-hashes
RUN pip install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
...
今までは問題なく動いていたのですが、突然以下のようなエラーが出るようになりました。文字通り export
コマンドが存在しないようです。
shell
The command "export" does not exist.
解決策
- プラグインを追加する
poetry-plugin-export
をインストールすることで、export
コマンドが利用可能となり、Dockerfile 等を修正する必要がありません。私はこちらで対応しました。
Dockerfile
RUN pip install poetry && pip install poetry-plugin-export
- poetry v2.0 以前のバージョンを利用する
Discussion