今年も Advent Calendar に記事を書くことになったけれど、ネタもないし余裕もない…
ということで普段 OpenAM コンソーシアム版 OpenAM のビルドに使っている Docker 環境を公開してお茶を濁すことにします…
$ git clone https://github.com/tsujiguchitky/dockerfiles.git
...
$ sudo docker build --tag build-openam-jp \
> dockerfiles/build-openam-jp
...
$ sudo docker run --name ambuild \
> -it build-openam-jp
...
$ sudo docker cp \
> ambuild:/home/builduser/source/openam/openam-server/target/OpenAM-14.0.0-SNAPSHOT.war .
で最新の master ブランチからビルドした OpenAM の war をゲットできます。
Dockerfile は大したことをしていないので、詳しく説明しませんが、
- コンテナの OS は CentOS7
- OpenAM のビルドには Maven 3.1 以上が必要なので、Software Collections の Maven 3.3 を使っている(OS 標準は 3.0.5)
- 関連するすべてのリポジトリに対して順番に
git clone
してmvn install
をする
くらいがポイントでしょうか。
普段はこんな感じ↓でつかっていて、
$ sudo docker run --rm \
> --entrypoint '/bin/bash' \
> -p 5005:5005 \
> -v {ソースを配置しているパス}:/home/builduser/source \
> -v {Maven ローカルリポジトリのパス}:/home/builduser/.m2/repository \
> -it build-openam-jp
改修したソースコードをビルド対象にしたいのと、Maven キャッシュも使いたいので -v
オプションで指定してます。
5005 ポートは mvn test
をデバッグするために指定しています。
おしまい。