Docker✖️Django 開発途中でパッケージを追加するときにハマったこと。

ハマったのは画像処理モジュールであるpillowのdjango開発途中におけるインストールです。ようやく解決できたので備忘録のためにこちらを書きます。

dockerfileとrequirements.txtがこれ

画像1

画像2

追加したいパッケージをdockerfileとrequirements.txtにこのように追記します。そして、コマンドの
docker-compose up -d

docker-compose run python ./manage.py migrate

でmigrateできるかと思ったのですが、このようなエラーが出ました。

(ERRORS:moneychecker.Video.thumbnail: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "python -m pip install Pillow".)

pillowがインストールされていないそうです。
dockerfileやrequirements.txtにも記述したのになぜインストールできていないのか。そこで、googleで調べた結果、docker-compose -d をする前に、docker-compose build コマンドを打つ必要が合ったらしく、

docker-compose build

docker-compose -d

docker-compose run python ./manage.py migrate

この順番でコマンドを打つことで、migrateに成功しました。

今回のエラーの原因は、dockerfileはbuildした際に読み込まれることを知らなかったことです。つまり、docker-compose buildをしていなかったため、dockerにpillow(モジュール)がインストールされていなかった事だと考えられます。

いいなと思ったら応援しよう!