Elastic Beanstalk にdjango+nginx+uWSGI でdeployした時の話
概要
Elastic Beanstalk にdjango+nginx+uWSGI でdeployした時の話
参考サイト
やってみたこと
- dockerfiles/django-uwsgi-nginx をgit clone して、ホストpcのdockerで試してみる。
- dockerfiles/django-uwsgi-nginx をeb deployしてみる。
- dockerfiles/django-uwsgi-nginxを自分用にコードやフォルダの中身を編集してみる。
- 編集したdjango-uwsgi-nginxをホストpcのdockerでbuild, runさせてみる。
- それをeb deployしてみる。
dockerfiles/django-uwsgi-nginx をgit clone して、ホストpcのdockerで試してみる。
$ git clone https://github.com/dockerfiles/django-uwsgi-nginx.git $ cd django-uwsgi-nginx/ $ docker build -t ebdjanginx . $ docker run -d -p 8000:80 ebdjanginx
これで、127.0.0.1:8000にアクセスしてみる。。。it worked!
dockerfiles/django-uwsgi-nginx をeb create or eb deployしてみる。
$ eb init $ eb create $ eb open
以下のerror発生!
Invalid HTTP_HOST header: '*****.ap-northeast-1.elasticbeanstalk.com'. You may need to add u'*****.ap-northeast-1.elasticbeanstalk.com' to ALLOWED_HOSTS.
ALLOWED_HOSTSにu'*****.ap-northeast-1.elasticbeanstalk.com'
を追加すれば解決できそう!
なので、とりあえず、eb deployもこのままの設定でいけることがわかった。Docker便利だなぁ(^ ^)
dockerfiles/django-uwsgi-nginxを自分用にコードやフォルダの中身を編集してみる。
現在の設定では、Dockerfileに、django-admin.py startproject
が入っているので、djangoですでにプロジェクトフォルダを作った状態で、eb deploy
してみる。
- Dockerfileを編集。以下のコードをコメントアウトする。
# 以下のコードをコメントアウトする。 # RUN django-admin.py startproject website /home/docker/code/app/
- app以下にdjangoのプロジェクトを作成する。以下のような感じに設定した。
django-uwsgi-nginx - Dockerfile - nginx-app.conf - uwsgi.ini - uwsgi_params - supervisor-app.conf - app - manage.py - requirements.txt - website - __init__.py ....
- settings.py のALLOWED_HOSTにさっきのerrorの内容を反映させておく。
# app/website/settings.py ALLOWED_HOSTS = [u'*******.ap-northeast-1.elasticbeanstalk.com','*']
とりあえず、こんなもんでOK!
編集したdjango-uwsgi-nginxをホストpcのdockerでbuild, runさせてみる。
$ docker build ebdjanginx2 . $ docker run -d -p 8000:80 ebdjanginx2
localhost:8000にアクセスしてみる。。。無事表示された!
次は、ebdeployしてみる。
編集したdjango-uwsgi-nginxをeb deployしてみる。
$ eb init $ eb create(or eb deploy) $ eb open
無事表示された!よかった〜。これを元に少しアプリをデプロイしてみよう。 ただ、nginxとuwsgiの設定はよくわかってないので、ここはしっかり理解せんとな〜。