Werckerのパイプライン内でDockerfileからコンテナをビルドする方法
Werckerはパイプラインの実行環境となっているコンテナからコンテナイメージを作るのがデフォルトの動きですが、なるべく軽量なコンテナにしたいなど、用途に最適化されたコンテナを作りたいという場合もあります。
そんなときは、コードリポジトリにDockerfileを入れておいて、それを使ってビルドすればOKです。
wercker.ymlの書き方は以下のような感じです。
box: alpine:3.6 build: steps: - internal/docker-build: name: build custom container. dockerfile: Dockerfile image-name: custom-container - internal/docker-push: name: push custom container. image-name: custom-container username: $REGISTRY_USERNAME password: $REGISTRY_PASSWORD repository: hhiroshell/custom-container tag: 1.0
internal/docker-build
で所望のDockerのコンテキストでコンテナをビルドできます。
dockerfile:
に設定しているのはDockerfileまでのパスです。パイプラインの実行中は、コードリポジトリのrootに当たるディレクトリがカレントになっています。上の例はコードリポジトリのrootの直下にDockerfileを置いておき、それを参照していることになります。
image-name:
は後続のStepでイメージを操作したいときに、イメージを特定するための名前です。この例だと docker-push
StepでビルドしたイメージをPushしています。
その他いろいろな設定が可能ですが、詳細は公式ドキュメントに詳しいです。