docker buildでURLを指定する
こんにちは。お久しぶりです。
大分長い間ブログを寝かせていましたが、ブログを再開することにしました。 まずはウォーミングアップで、簡単なネタから…。
アプリケーションのビルドとデプロイ
弊社では、ソース管理にgit、アプリケーションの稼働にdockerを使っている環境があります。 (このころdockerを使おうと頑張っていましたね。) eatsmart.hatenablog.com
その環境では、アプリケーションのデプロイには、
- git上のソースをビルド
- dockerコンテナ構築
- デプロイ
という手順を踏むのですが、1について、ビルドサーバー上の適当な場所へgit cloneを行なっていました。
ビルドするための環境
ただ、ビルドサーバー上で"適当な場所"を決めてgit cloneしなければいけないし、それ以前に、実稼働環境のランタイムやライブラリのバージョンがアプリケーションによって異なるので、ビルドサーバー上での環境についてのバージョン管理が複雑になっていました。
ビルド環境のコンテナ化とURL指定
どうにかビルド環境を簡単に管理することができないかと思いながらdockerのドキュメントを見ていたら、
docker build [OPTIONS] PATH | URL | -
URLを指定してdocker buildできることに気づきました。
指定するURLとしてgitのリポジトリを使うことができ、以下のように指定できます。
指定リポジトリ | URL | buildのルートフォルダ |
---|---|---|
master | myrepo.git | masterブランチのルート |
ブランチ指定 | myrepo.git#branch | branchブランチのルート |
ディレクトリ指定 | myrepo.git#:myfolder | masterブランチの/myfolder |
ブランチ&ディレクトリ指定 | myrepo.git#branch:myfolder | branchブランチの/myfolder |
docker build に渡すURLを切り替えることで、branchについてのコンテナも簡単に作ることができそうです。
最後に
git上にDockerfileを格納し、docker build時にgit上のURLを指定することで、専用の環境でビルドとコンテナ構築をまとめてできるようになりました。