Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Elastic Beanstalk に、Dockerで、miniconda+opencvでサンプルアプリをデプロイした話

概要

Elastic Beanstalkに、Dockerで、Dockerで、miniconda+opencvでデプロイした話

参考サイト

docs.aws.amazon.com

やってみたこと

  • Docker のサンプルをダウンロードして、Dockerfileを書き換える。
  • eb init -> eb createで、アプリケーションと、環境作成する。
  • EC2インスタンスにログインして、opencvが入っているか確認する。

Docker のサンプルをダウンロードして、Dockerfileを書き換える。

  • 以下サイトから、単一コンテナの Docker – docker-singlecontainer-v1.zip をダウンロードする

http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/tutorials.html

  • Dockerfileを修正する。
- FROM python:2.7
+ FROM continuumio/miniconda #これはminicondaのpython2.7versionのやつ

+ RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client python-pip build-essential libpq-dev python-dev libgtk2.0-0

+ RUN pip install setuptools
+ RUN conda install -y --channel https://conda.anaconda.org/menpo opencv3

# Add sample application
ADD application.py /tmp/application.py

EXPOSE 8000

# Run it
ENTRYPOINT ["python", "/tmp/application.py"]

これだけ!

Elastic Beanstalkで、アプリケーションと環境を作成する。

$ eb init
# regionは、tokyoで、Dockerを選択する。

$ eb create
# load balancer typeは、2) applicationを選択する

これで、とりあえず、deployは完了!

opencvが入っているかの確認をしてみる。

$ ssh -i /path/my-key-pair.pem ec2-user@ec2******.compute-1.amazonaws.com
# python
>>> import cv2

# docker images 
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

あー、何もできん。

多分、EC2インスタンスからDockerにはアクセスできないぽいな、、、

EC2インスタンス

AmazonLinux

Docker

minicondaの環境のcontainer

という感じになっているはずだから,普通の方法では確認はできないのかもしれんな。

今後の課題としては、これをdjangoで動かすことだなぁ〜。。。