ConohaVPSにDockerを使ってDjango環境をつくる(Django1.10+ Gunicorn+Nginx+PostgreSQL)

[前回の環境構築（DockerInstallまで）]
(https://qiita.com/hamakihito/items/0c6d1c0486a291300247)

##今回使った参考記事
今回はここからDockerを利用して
[Djangoの環境をDocker化する（Docker + Django + Gunicorn + nginx）その１]
(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】](https://qiita.com/drafts/67d9cd756e5683be9d0c)

##以下挫折するまでの過程
###環境の詳細
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のあたりの問題のようで、[一旦不要フォルダを削除するといいというお話](https://github.com/benoitc/gunicorn/issues/1789)
なので、ならって以下のコマンド実行

```
$ docker system prune -a -f
```
いろいろ削除されたので、もう一度以下を実行。

```
$ docker-compose up
〜中略〜
```

やっぱだめｗ
探してると、 [Exitになってたりするのを見つけれる](https://note.mu/enpel/n/n09897673655d)コマンドがあるとのこと。

```
$ 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】](https://qiita.com/drafts/67d9cd756e5683be9d0c)