Docker✖️Django 開発途中でパッケージを追加するときにハマったこと。
ハマったのは画像処理モジュールであるpillowのdjango開発途中におけるインストールです。ようやく解決できたので備忘録のためにこちらを書きます。
dockerfileとrequirements.txtがこれ
追加したいパッケージを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(モジュール)がインストールされていなかった事だと考えられます。