主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Docker: Docker + supervisor + NginX

                
tags: Docker python
 前回はDocker + NginxでPythonのWebアプリを走らせた。
http://elicon.blog57.fc2.com/blog-entry-460.html
 前回作ったものはコンテナを走らせてからNginXを追加コマンドで走らせていた。どうせならコンテナを走らせればNginxとPythonスクリプトが起動して、Webアプリとしても動作してくれるとありがたかったのだが、NginXが基本的にデーモンプロセスで実行なことなどでそうなっていた。今回はそれをsupervisorを使って解消し、コンテナを走らせれば追加コマンドなしでWebアプリとして動作するようにコンテナを作る。

 前回からWebアプリのPythonスクリプトhello.pyと、NginXの設定ファイルhello.confをそのまま持ってくる。あとsupervisor設定ファイルsupervisord.confを用意する。
 
 Dockerfileとsupervisor.confは以下。
FROM ubuntu

RUN apt-get update && apt-get -y install nginx && \
apt-get install -y supervisor && \
apt-get install -y python3-pip && \
pip3 install gunicorn && \
pip3 install tornado

RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN rm /etc/nginx/sites-enabled/default
ADD hello.conf /etc/nginx/conf.d/
RUN /etc/init.d/nginx reload

ADD . /usr/
WORKDIR /usr/

EXPOSE 80
CMD /usr/bin/supervisord -c supervisord.conf


[supervisord]
nodaemon = true

[program:nginx]
command = nginx

[program:hello_app]
command = gunicorn hello:wsgi_app


 上記のファイルを用意した状態で下記二行を実行すればsupervisorによってNginXとPythonWebアプリの両方が起動している。http://192.168.59.103/へアクセス。
docker build -t b3_tmp ./
docker run -d -p 80:80 --name b3 b3_tmp

1507290936497.jpg
スポンサーサイト
プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。