EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

docker buildでURLを指定する

こんにちは。お久しぶりです。

大分長い間ブログを寝かせていましたが、ブログを再開することにしました。 まずはウォーミングアップで、簡単なネタから…。

アプリケーションのビルドとデプロイ

弊社では、ソース管理にgit、アプリケーションの稼働にdockerを使っている環境があります。 (このころdockerを使おうと頑張っていましたね。) eatsmart.hatenablog.com

その環境では、アプリケーションのデプロイには、

  1. git上のソースをビルド
  2. dockerコンテナ構築
  3. デプロイ

という手順を踏むのですが、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を指定することで、専用の環境でビルドとコンテナ構築をまとめてできるようになりました。