以下は、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が完成しました。
Copyright © ITmedia, Inc. All Rights Reserved.