以下は、Motionとhttpdが稼働するDockerイメージを生成するためのDockerfileの例です。今回、Dockerコンテナのテンプレートは、CentOS 7.2のOSイメージを使用します。また、Motionとhttpdといった複数のサービスが同時に一つのDockerコンテナ内で稼働しますので、連載第16回でご紹介したように、Supervisorを利用してMotionとhttpdを稼働、監視するようにします。そのため、Dockerfileにはhttpd、motionだけでなく、Supervisorの導入工程も含まれています。
# mkdir /root/supervisord_httpd_motion
# cd /root/supervisord_httpd_motion/
# vi Dockerfile
FROM centos:centos7.2.1511
MAINTAINER Masazumi Koga
ENV container docker
RUN yum install -y \ ↓Motion RPMパッケージの入手に必要なリポジトリを追加
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm \
&& yum clean all
RUN yum update -y \
&& yum clean all ↓iprouteとSupervisorとhttpdとMotionをインストール
RUN yum install -y iproute supervisor httpd motion \
&& yum clean all
RUN mkdir -p /var/www/html/motion ←画像・動画データ保存用のディレクトリを作成
COPY motion.conf /etc/motion/ ←Motionの設定ファイルを配置
COPY supervisord.conf /etc/ ←Supervisorの設定ファイルを配置
RUN chmod 600 /etc/supervisord.conf ←Supervisorの設定ファイルの閲覧権限を設定
EXPOSE 80 9001 ←Webアクセスに必要なポートを設定
ENTRYPOINT ["/usr/bin/supervisord"] ←Supervisorのデーモンを起動
上記のDockerfileについて簡単に解説します。
必要なRPMパッケージの導入
画像ファイルや動画ファイルの保存用ディレクトリ
Motionの設定ファイル
Supervisorの設定ファイル
以上で、Motionとhttpdをsupervisordで起動・監視するDockerコンテナのためのDockerfileが完成しました。
第17回 Dockerで植物が育つ様子を自動録画してみよう――その1
第16回 1つのDockerコンテナでサービスをたくさん動かすには?(応用編)
第15回 1つのDockerコンテナでサービスをたくさん動かすには?(基礎編)Copyright © ITmedia, Inc. All Rights Reserved.