諸元
とはいっても以下のサイトの情報をベースにまとめただけ。
http://d.hatena.ne.jp/mainyaa/20140203/p1
https://index.docker.io/u/flox/debian-openerp/
実績
一応、動作の確認はできました。
これの応用したものを後で出す予定。
ただ、ビルドで変なログがあるので、よくないことやってるかも(debian的に)。
やっていること
- ベースイメージ
- メンテナー
- ミラー(CDNからどこでもミラー)
- noninteractive
- ロケール
- --no-install-recommends の例示
- git
- キャッシュ削除
ベースイメージ
(セミ)オフィシャルから。
メンテナー
ちゃんと入れましょう。
ロケール
この設定でいいかは一寸微妙です。(そのままもってきてあるだけ)
noninteractive
ENVとRUN exportの差はちょっと微妙ですが、現在はここに。
ミラー(CDNからどこでもミラー)
Baseに合せて設定が必要。
--no-install-recommends の例示とキャッシュ削除
ここらへんはサイズ対策として必要。
git
これは後述。よく使うとおもうので、サンプルを兼ねて。
FROM debian:wheezy
MAINTAINER My Name <MyAddress@example.com>
# mirror
RUN echo "deb http://cdn.debian.net/debian/ wheezy main contrib non-free" > /etc/apt/sources.list.d/mirror.jp.list
RUN echo "deb http://cdn.debian.net/debian/ wheezy-updates main contrib" >> /etc/apt/sources.list.d/mirror.jp.list
RUN /bin/rm /etc/apt/sources.list
RUN export DEBIAN_FRONTEND=noninteractive LANG
RUN apt-get update
# set locale
RUN apt-get install -y --no-install-recommends apt-utils locales
RUN echo en_US.UTF-8 UTF-8 > /etc/locale.gen
RUN locale-gen
RUN update-locale LANG=en_US.UTF-8
# sample
RUN apt-get install -y --no-install-recommends xxx
# apt package
# need for git
RUN apt-get install -y --no-install-recommends git
RUN apt-get install -y --no-install-recommends ca-certificates openssl
# clean up
RUN apt-get upgrade -y && apt-get clean && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*
# git clone
RUN git clone https://github.com/xxx/yyy.git
ENTRYPOINT "/bin/bash"
ちょっとハマった所
イメージ
最新はdebian
でよい。
というか、debian:wheezy
だと取得サイズがすごい小さいかわりにシェルをENDPOINTにできなかった。
たぶんサービスを稼動させてリリースするに良いようにしていると思われる。
細かい情報はリンク先にあると思う。
ミラーとの絡みがあるので、固定したいんだけどね。
ENDPOINT
上記イメージの影響で(エラーメッセージあった)、ENDPOINT [ "/bin/bash" ]
で渡してうまく動かなかった。
調べた時は昔にパラメタ渡しタイプは1つでNGになるIssueがあったが、関係ないはず。
まあ、1つなのでサンプルに落ち着いた。
git
単純にgitだけだと、httpsアクセスに失敗してしまう。証明書とopensslが必要なんだが、必須パッケージじゃないんだなーと。