④CoreOSでDockerしてみる(Dockerを使って、EPM-Xをインストール)
Dockerを使って、EPM-Xをインストールしてみます。
■EPM-Xとは?
IPA(独立行政法人 情報処理推進機構)が作成した、定量的なプロジェクト管理を支援するツールです。
Trac(Redmine)や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では、Apache、Tomcat、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://
OSにアプリケーションをインストールした状態で、仮想コンテナを作成することもできるので、便利ですね。
仮想コンテナを配置するだけで、WEBアプリケーション等を起動することができます。