[前回の環境構築(DockerInstallまで)]
(https://qiita.com/hamakihito/items/0c6d1c0486a291300247)
##今回使った参考記事
今回はここからDockerを利用して
[Djangoの環境をDocker化する(Docker + Django + Gunicorn + nginx)その1]
(https://qiita.com/amazipangu/items/bce228f506f894cd825d)
##お詫び
結論から言うと、最終的にこの過程は諦めてます。
勉強不足が否めないので、改めて
公式のQuickStartを使って、Djangoを使ったDocker環境をつくってみます。`
[Django Quickstart]
(https://docs.docker.com/compose/django/#define-the-project-components)
[日本語版]
(http://docs.docker.jp/v1.9/compose/django.html)
→Todo:次の記事
DockerComposeでDjangoを。<写経>【Docker公式クイックスタート・ガイド:Compose と Django】
##以下挫折するまでの過程
###環境の詳細
OS
Ubuntu16.04LTS
仮想化ツール
DockerCE 18.06.1
言語
Python3.6
フレームワーク
Django1.10
WSGI
Gunicorn
Webサーバ
Nginx
データベース
PostgreSQL
では、始めていきます。
#Docker環境構築
##まずGit使えるように
$ sudo yum install git-all
##Gitからクローンしてインストール
※ここも参考に
[コマンドで操作するgit - 開発手順に沿って解説]
(https://qiita.com/sekiyaeiji/items/d0312c90bff4c37bc5dc)
//ディレクトリ用意
$ mkdir ~/gitwork
$ cd ~/gitwork
$ git init
[Dockerize Django Environment]
(https://github.com/amazipangu/docker-django)
//clone
$ git clone https://github.com/amazipangu/docker-django.git
//フォルダが作られてることを確認
$ ls
docker-django
READMEの手順を追っていきます。
$ cd docker-django/
$ docker-compose build
Create the Django project using the docker-compose command.
DockerのコマンドでDjangoプロジェクトをつくります。
一旦 testproject で
$ docker-compose exec web django-admin.py startproject testproject .
ERROR: No container found for web_1
あれ?と思ったので調べると、docker-compose up
が必要らしい。
[docker-compose "up" " run" "start" コマンド 違い]
(https://qiita.com/mom0tomo/items/f536e6759d3f42d58ffc)
$ docker-compose up
〜中略〜
web_1 | __import__(module)
web_1 | ModuleNotFoundError: No module named 'test'
web_1 | [2018-08-26 11:29:47 +0000] [7] [INFO] Worker exiting (pid: 7)
web_1 | [2018-08-26 11:29:47 +0000] [1] [INFO] Shutting down: Master
web_1 | [2018-08-26 11:29:47 +0000] [1] [INFO] Reason: Worker failed to boot.
docker-django_web_1 exited with code 3
となって終わらずループしてたので、
Ctrl+Cで強制終了させる。
^CGracefully stopping... (press Ctrl+C again to force)
Stopping docker-django_nginx_1 ... done
Stopping docker-django_cli_1 ... done
Stopping docker-django_web_1 ... done
Stopping docker-django_db_1 ... done
調べると、Gunicornのあたりの問題のようで、一旦不要フォルダを削除するといいというお話
なので、ならって以下のコマンド実行
$ docker system prune -a -f
いろいろ削除されたので、もう一度以下を実行。
$ docker-compose up
〜中略〜
やっぱだめw
探してると、 Exitになってたりするのを見つけれるコマンドがあるとのこと。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------
docker-django_cli_1 /bin/sh -c while true; do ... Exit 137
docker-django_db_1 docker-entrypoint.sh postgres Exit 137
docker-django_nginx_1 nginx -g daemon off; Exit 137
docker-django_web_1 gunicorn test.wsgi -b 0.0. ... Exit 3
[What causes error 137 in Docker]
(https://bobcares.com/blog/error-137-docker/)
上記リンクによると、Error 137は、メモリ不足でコンテナが'kill'されているということらしい。
コンテナのconfigをいじれとか言ってるのですが、Exit 3が気になるのでちょっと後回しにしてみる。
Exit3 ようわからん。
#あきらめる
結果的に、Dockerの使い方をもう少し学ばないといけないと思うので、まず公式チュートリアルからやってみます。ありがとうございました。
->次の記事
DockerComposeでDjangoを。<写経>【Docker公式クイックスタート・ガイド:Compose と Django】