④CoreOSでDockerしてみる(Dockerを使って、EPM-Xをインストール)

Dockerを使って、EPM-Xをインストールしてみます。


■EPM-Xとは?
IPA独立行政法人 情報処理推進機構)が作成した、定量的なプロジェクト管理を支援するツールです。
TracRedmine)やSubVersion等が入っています。
http://sec.ipa.go.jp/tool/ipf/index.html


EPM-Xの公式Dockerイメージは公開されていないため、Dockerイメージを作ってみます。
稼働環境であるCentOS5のDockerイメージを元にして、作成します。


■Centos5のDockerイメージを元にして、EPM-XのDockerイメージを作成する

docker pull centos:5
docker run -i -t -d centos:5 /bin/bash
docker ps
docker attach <コンテナのID>
# yum install wget
# yum install openssh-clients ※EPM-Xのインストールに必要なので、とりあえず入れておく
# wget http://ppma.jp/DataFolder/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89/ipftools-trac-1.0-setup-centos.x86_64.bin
# /bin/bash ./ipftools-trac-1.0-setup-centos.x86_64.bin
# Ctrlを押したまま、pq で抜ける(exitするとコンテナが終了し、変更が破棄されるので注意)
docker commit <コンテナのID> centos/epm-x
docker run --restart=always --name epm-x -d -i -t -p 80:80 centos/epm-x


・[dcoker pull 〜]でCentOS5の仮想イメージを取得します。
・[dcoker run 〜]でCentOS5の仮想イメージからコンテナを起動します。
・[docker ps]でコンテナのIDを確認します。
・[dcoker attach 〜]でCentOS5の仮想コンテナ内でコマンドを実行し、EPM-Xをインストールします。
・[docker commit 〜]で現在のコンテナの状態を保存します。(EPM-Xがインストールされた状態が保存される)
・[docker commit 〜]で保存した仮想イメージから、[dcoker run 〜]で、コンテナを起動します。


EPM-Xでは、ApacheTomcat、PostgresSQLのサービスを起動する必要があります。
通常ならば、chkconfigで自動起動を設定すれば良いのですが、Dockerコンテナを起動しても、サービスは起動してくれません・・・
Dockerコンテナ(のOSイメージ)は、initプロセスではなく、直接プロセスを実行する為、chkconfig on/offの自動起動設定が呼ばれないようです・・・

# chkconfig postgresql on
# chkconfig httpd on
# chkconfig ipftools-tomcat on


その為、Docker execコマンドで、仮想コンテナ内でコマンドを実行し、サービスを起動します。

docker exec epm-x bash -c '/etc/init.d/postgresql start && /etc/init.d/httpd start && /etc/init.d/ipftools-tomcat start'


毎回、Docker execコマンドを実行するのは面倒なので、
Dockerサービス起動後に、Docker execコマンドを実行するように設定します。
これで、仮想コンテナ内のサービスも自動起動するようになります。

sudo vi /etc/systemd/system/epm-x.service
sudo systemctl enable /etc/systemd/system/epm-x.service
#/etc/systemd/system/epm-x.service
[Unit]
Description=EPM-X Service
After=docker.service
Requires=docker.service

[Service]
ExecStart=/usr/bin/docker exec epm-x bash -c '/etc/init.d/postgresql start && /etc/init.d/httpd start && /etc/init.d/ipftools-tomcat start'

[Install]
WantedBy=multi-user.target


http:///trac/sample_project にブラウザからアクセスします。
OSにアプリケーションをインストールした状態で、仮想コンテナを作成することもできるので、便利ですね。
仮想コンテナを配置するだけで、WEBアプリケーション等を起動することができます。