環境
問題
解決策
multithreading - Python in docker – RuntimeError: can’t start new thread - Stack Overflow
Dockerを20.10.24以上にアップデートすることで解消するとのコメントがある。
または、pipはprogress barを表示するのにスレッドを使っているため、表示をオフにすることで解消する。
sam build --use-container
が失敗する
SAM を使ってLambdaにデプロイするときに、 sam build --use-container
としていたのだが、このときにprogressbarをOFFにする方法がわからなかった。
Dockerのバージョンも上げにくい環境だった。
そこで以下のようにして、依存関係のダウンロードのみローカルで実行してからビルドすることにした。(pythonのインストールが必要になってしまうのでuse-containerの恩恵が減る)
# あらかじめ依存関係をダウンロードしておいてrequirements.txtは削除することで、sam buildの処理中にはダウンロードされない
cat requirements.txt | cut -d ';' -f 1 | sed -e 's/ \+$//' > tmp && mv tmp requirements.txt
pip3 install -r requirements.txt -t .
rm requirements.txt
sam build --config-env dev
sam deploy --config-env dev