Elastic Beanstalk にDockerfileだけで、サンプルアプリをdeployする方法
参考サイト
やってみたこと
AWSの参考ファイルのDockerfileを、作成して、eb create、eb initするだけでサンプルアプリができた、すごいね(^ ^;)
- Dockerfileを作成する
FROM ubuntu:12.04 RUN apt-get update RUN apt-get install -y nginx zip curl RUN echo "daemon off;" >> /etc/nginx/nginx.conf RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip EXPOSE 80 CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
- Dockerfileを適当なフォルダに配置する。
test2048 - Dockerfile
- ElasticBeanstalkでデプロイしてみる。
$ cd test2048 $ eb init $ eb create
できた〜〜〜!すげーなw
Dockerfileの読解
# ubuntuイメージ FROM ubuntu:12.04 # apt-getで、nginx, zip, curlをゲットする。 RUN apt-get update RUN apt-get install -y nginx zip curl # apt-getしてできた、nginx.confに、daemon offを書き込む RUN echo "daemon off;" >> /etc/nginx/nginx.conf # curl = cURLらしい。-o オプションは、保存。-L は、--locationの略で、要求したページが別の所在に移動していた場合に(サーバからの Location: ヘッダ行と 3XX 応答コードで検知されます)、このオプションにより,新しい所在に対して要求を再試行するようになります。 RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master # master.zipを解凍して、2048-master以下のファイルを、[.]現在のフォルダ(www/以下)に移動させる。2048-master master.zipは削除する。 RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip # コンテナ側の80portを解放する EXPOSE 80 # CMDは、構築時には何もしないが、コンテナ実行時の挙動を指定できる # ここでは、/usr/sbin/nginxを、 -c(--conf-path)で、/etc/nginx/nginx.confを指定して実行している。 CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
あとは、2048の解説だけど、これは次の記事で検証してみるか。