⚠️

poetry v2.0 から poetry export がデフォルトで使用できなくなった件

2025/01/17に公開

経緯

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.

解決策

  1. プラグインを追加する
    poetry-plugin-export をインストールすることで、export コマンドが利用可能となり、Dockerfile 等を修正する必要がありません。私はこちらで対応しました。
Dockerfile
RUN pip install poetry && pip install poetry-plugin-export
  1. poetry v2.0 以前のバージョンを利用する

Discussion