Django+Nginx+uwsgiの環境をdocker-composeで構築する

投稿者: | 2019年10月14日

以前の記事で Djangoの開発環境をdocker-composeで構築したのですが、結局本番環境ではNginxを使うということでローカル環境のNginxを使っての構築方法をまとめました。

やりたいこと

ブラウザで localhostでDjangoアプリケーションにアクセスできるようにしたい。

内部の処理の流れ

内部の処理の流れは下記のようになります。

localhostでアクセス(portは80) -> nginxからポート 8001 を通じて djangoコンテナにアクセス -> djangoコンテナで起動している uwsgiのソケットにアクセス -> アプリケーションにアクセス

requirements.txt

uwsgiを追加します。

nginx

docker/nginx/Dockerfile

nginx用のDockerfileを作成します。

docker/nginx/app.conf

nginxの設定ファイルを作成します。

docker/nginx/uwsgi_params

uwsgiの変数用の設定ファイルを作成します。

Django

Dockerfile

docker-compose.yml

docker-compose.ymlでコンテナを繋げてみましょう。

launch.sh

起動スクリプトを作成します。

最後の行の app.wsgiのappの部分は、wsgi.pyファイルが生成されたディレクトリ名を入れてください。

起動してみる

さて、まずイメージ作成してみましょう。

続けてコンテナ起動します。

下記のような出力がされたら成功です。