原文はこちら。
https://blogs.oracle.com/wercker/announcing-new-built-in-steps-for-building%2C-testing-and-pushing-docker-images-in-your-wercker-pipelines
Werckerに3つの新しい組み込みステップが追加されました。これにより、Dockerイメージの作成、テスト、イメージ・レジストリへのPushが簡単になり、全てWerckerパイプラインで可能になりました。
Dockerfileを作成してソースコードリポジトリに追加するだけでイメージをビルドできます。DockerfileはDockerイメージを作成する標準的な方法です。そのため、既存のプロジェクトをWerckerに移動する場合は、すでにDockerfileを作成済みのことでしょう。
この internal/docker-build ステップを使って、DockerfileをWerckerで直接実行できます。 単に以下の記述をwercker.ymlに追加するだけです。
このコマンドで先ほど作成したイメージを使って新しいコンテナを起動します。パイプラインはコンテナに接続し、やりたいテストを実行できます。
作成したイメージが”Hello World”を返すWebサーバを実行すると仮定しましょう。以下はコンテナに接続し、 curl コマンドを使って期待するレスポンスが戻ることを検証するシンプルなスクリプトのステップです。
既存の internal/docker-push ステップを拡張し、その前の internal/docker-build ステップで作成したイメージを任意のレジストリにPushできるようにしました。:
ドキュメントをご覧いただき、GitHubのサンプルをお試しください。
https://blogs.oracle.com/wercker/announcing-new-built-in-steps-for-building%2C-testing-and-pushing-docker-images-in-your-wercker-pipelines
Werckerに3つの新しい組み込みステップが追加されました。これにより、Dockerイメージの作成、テスト、イメージ・レジストリへのPushが簡単になり、全てWerckerパイプラインで可能になりました。
Dockerfileを作成してソースコードリポジトリに追加するだけでイメージをビルドできます。DockerfileはDockerイメージを作成する標準的な方法です。そのため、既存のプロジェクトをWerckerに移動する場合は、すでにDockerfileを作成済みのことでしょう。
この internal/docker-build ステップを使って、DockerfileをWerckerで直接実行できます。 単に以下の記述をwercker.ymlに追加するだけです。
Dockerイメージを作成したら、イメージを始動してテストを実行したいと思うことでしょう。そんなときは、この新しい internal/docker-build というステップを使って新しいイメージを始動できます。- internal/docker-build:
dockerfile: Dockerfile
image-name: my-new-image
image-name は後のステップでイメージを参照するために使用する一時的な名前です。- internal/docker-run:
image: my-new-image
このコマンドで先ほど作成したイメージを使って新しいコンテナを起動します。パイプラインはコンテナに接続し、やりたいテストを実行できます。
作成したイメージが”Hello World”を返すWebサーバを実行すると仮定しましょう。以下はコンテナに接続し、 curl コマンドを使って期待するレスポンスが戻ることを検証するシンプルなスクリプトのステップです。
Using Wercker to build an image from a Dockerfile
https://github.com/wercker/docker-build-golang
テストが成功すると、他者がそのイメージを利用できるよう、Docker HubのようなレジストリへのイメージのPushをパイプラインにさせたいと思うことでしょう。- script:
name: Test the container
code: |
if curlOutput=`curl -s myTestContainer:5000`; then
if [ "$curlOutput" == "Hello World!!" ]; then
echo "Test passed: expected response"
else
echo "Test failed: unexpected response"
exit 1
fi
else
echo "Test failed: container did not respond"
exit 1
fi
既存の internal/docker-push ステップを拡張し、その前の internal/docker-build ステップで作成したイメージを任意のレジストリにPushできるようにしました。:
すごく簡単ですね。- internal/docker-push:
image-name: my-new-image
username: $USERNAME # You can configure user and password
password: $PASSWORD # securely in wercker.com
repository: docker.io/$USERNAME/docker-build-golang
tag: latest
ドキュメントをご覧いただき、GitHubのサンプルをお試しください。
Building an Image
https://devcenter.wercker.com/administration/containers/building-an-image/
Using Wercker to build an image from a Dockerfile
https://github.com/wercker/docker-build-golang