Dockerでkanon(Trac)を動かしてみた2 - イメージの作成
前の記事で、多くの人は必要ない部分としてイメージの作成については触れていなかったので、ここで解説します。素人なので、間違っているところもあると思うので、お気づきの点は教えてください。
まずはファイルを取得します。
$ hg clone https://bitbucket.org/okazakiyuji/kanon$ cd kanon$ hg update org
リポジトリのファイル(ゴミもあります)の一覧です。
(1) Dockerfileイメージを作成するためのファイル(2) docker-entrypoint.shrunで実行するときに起動するスクリプト(3) kanon-setup修正してあるインストーラ(4) pkglist.rhel6yumでインストールするパッケージ、ビルドの初期に実行したいのでKanonから抜き出した(5) pluginlistインストールするプラグインのURL
上書きするファイルの(3),(5)の修正内容
・元のKanonConductorでうまくインストールできない場所を修正するプラグインのインストール元をhttp->httpsに変更(3),(5)・コンテナ化のために必要なことインストールの初期の質問はなしにする(3)Maven, Jenkinsは無効に(3)SELinuxの無効化もしない(3)SampleProjectはインストールしない(3)サービスは動かさない(3)
残りの二つのファイルはデータの永続化のための処理が入っています。内容の説明はファイル内のコメントでご勘弁を
(1) Dockerfile
$ cat DockerfileFROM centos:6MAINTAINER okazakiyuji <zaki@mbf.nifty.com># ロケールの設定RUN localedef -f UTF-8 -i ja_JP /usr/lib/locale/ja_JP.UTF-8# パッケージのインストール kanon-setupのものも先にインストールするADD pkglist.rhel6 /tmp/RUN yum -y update && \yum -y install mercurial `cat /tmp/pkglist.rhel6` subversion-python && \yum clean all# セットアップに必要な環境変数ENV KANON_IN_CONTAINER 1ENV MAVEN "n"ENV JENKINS "n"# マウントするフォルダの退避先を作成RUN mkdir -p /tmp/save# 上書きするファイルを/tmpにコピーするCOPY kanon-setup /tmp/kanon-setupCOPY pluginlist /tmp/pluginlist# インストール、マウントするフォルダをコピー、いらないファイルの削除RUN hg clone https://bitbucket.org/okamototk/kanonconductor \/tmp/kanonconductor && \cd /tmp && \cp kanon-setup kanonconductor/ && \cp pluginlist kanonconductor/ && \/tmp/kanonconductor/kanon-setup && \cd /tmp/save && \cp -r /var/opt/kanon ./var && \cp -r /etc/opt/kanon ./etc && \cp -r /opt/kanon/lib ./lib && \cd /tmp && rm -rf kanonconductor kanon-setup# マウントする場所を明示しておくVOLUME /opt/kanon/libVOLUME /etc/opt/kanonVOLUME /var/opt/kanon# ホストに接続するポートEXPOSE 80# 実行時に動くスクリプトのコピーADD docker-entrypoint.sh /# 実行時に起動するファイルの指定ENTRYPOINT ["/docker-entrypoint.sh"]# 実行時のスクリプトに渡す引数(コマンド)CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
(2) docker-entrypoint.sh
$ cat docker-entrypoint.sh#!/bin/bash# マウントしたフォルダに何もない場合は初回の起動とするif [ ! -d /var/opt/kanon/trac ] ; then# 初回起動時はコピーしていたファイルを戻すcp -r /tmp/save/lib /opt/kanon/cp -r /tmp/save/var/* /var/opt/kanon/cp -r /tmp/save/etc/* /etc/opt/kanon/fiif [ "$1" = '/usr/sbin/apachectl' ]; then# https://github.com/CentOS/CentOS-Dockerfiles/blob/master/httpd/centos6/run-httpd.sh を参照したrm -rf /run/httpd/*exec /usr/sbin/apachectl -D FOREGROUNDexit 0fi# CMDで/usr/sbin/apachectl以外が指定された場合はそのままコマンドとして実行するexec "$@"
| 固定リンク
「Trac」カテゴリの記事
- Dockerでkanon(Trac)を動かしてみた2 - イメージの作成(2017.08.27)
- Dockerでkanon(Trac)を動かしてみた(2017.08.27)
- TracLightningにコバンザメしてKanonと同様にPluginをインストールする(2014.04.13)
- kanonをTrac1.0.1+MySQL対応に変更してみた(2013.11.24)
- kanonをTrac1.0.1対応に変更してみた(2013.11.11)
「Docker」カテゴリの記事
- Dataloader+MariaDB Connector/JのDockerイメージを作りました(2017.11.05)
- Dockerでkanon(Trac)を動かしてみた2 - イメージの作成(2017.08.27)
- Dockerでkanon(Trac)を動かしてみた(2017.08.27)
この記事へのコメントは終了しました。
コメント