[Docker, Cloud] Announcing new built-in steps for building, testing and pushing docker images in your Wercker pipelines

原文はこちら。
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に追加するだけです。
- internal/docker-build:
    dockerfile: Dockerfile 
    image-name: my-new-image
Dockerイメージを作成したら、イメージを始動してテストを実行したいと思うことでしょう。そんなときは、この新しい internal/docker-build  というステップを使って新しいイメージを始動できます。
- internal/docker-run:
    image: my-new-image
image-name は後のステップでイメージを参照するために使用する一時的な名前です。

このコマンドで先ほど作成したイメージを使って新しいコンテナを起動します。パイプラインはコンテナに接続し、やりたいテストを実行できます。

作成したイメージが”Hello World”を返すWebサーバを実行すると仮定しましょう。以下はコンテナに接続し、 curl コマンドを使って期待するレスポンスが戻ることを検証するシンプルなスクリプトのステップです。
Using Wercker to build an image from a Dockerfile
https://github.com/wercker/docker-build-golang
- 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        
テストが成功すると、他者がそのイメージを利用できるよう、Docker HubのようなレジストリへのイメージのPushをパイプラインにさせたいと思うことでしょう。

既存の 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

0 件のコメント:

コメントを投稿