blog

Wercker CLI で pipeline をローカルで実行する

    • Ryuichi Nonaka

    はじめに

    前回の記事 Wercker step-s3sync でファイル名に日本語を含んでいる場合に Sync できない問題の解決方法(小ネタ) を調査している際に Wercker CLI について調べたことをメモしておきます。

    Wecrker CLI とは

    Wercker CLI は Wercker の pipeline をローカル環境で実行できるツールです。ローカルで実行することによって、pipeline の内部で行われている処理のデバッグが容易になります。

    環境

    このツールを利用するには Docker 環境が必要になります。Docker の ページからインストールできる Docker.app は Docker Client だけなので、その他の開発ツールを一式インストールできる Docker Toolbox を使います。

    Docker 環境の構築

    まずは Docker 環境を用意します。

    Docker Machine を作成する

    Docker Toolbox をインストールできたら、image を動かすための Machine を $ docker-machine create で用意します。

    $ docker-machine create --driver virtualbox dev
    Creating CA: /Users/rin/.docker/machine/certs/ca.pem
    Creating client certificate: /Users/rin/.docker/machine/certs/cert.pem
    Running pre-create checks...
    Creating machine...
    (dev) Copying /Users/rin/.docker/machine/cache/boot2docker.iso to /Users/rin/.docker/machine/machines/dev/boot2docker.iso...
    (dev) Creating VirtualBox VM...
    (dev) Creating SSH key...
    (dev) Starting the VM...
    (dev) Check network to re-create if needed...
    (dev) Found a new host-only adapter: "vboxnet0"
    (dev) Waiting for an IP...
    Waiting for machine to be running, this may take a few minutes...
    Detecting operating system of created instance...
    Waiting for SSH to be available...
    Detecting the provisioner...
    Provisioning with boot2docker...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Checking connection to Docker...
    Docker is up and running!
    To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env dev
    

    作成した Machine を $ docker-machine ls で確認します。

    $ docker-machine ls
    NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
    dev    -        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.2
    

    .zshrc 等に環境変数の設定処理を追記する

    この設定で起動時に必ず dev Machine の環境変数が設定されるようになります。環境変数は Docker deamon が起動していないと正しく設定されないので注意してください。環境変数は $ env で確認します。

    eval "$(docker-machine env dev)"
    

    補足:Docker Machine の起動と停止

    作業 コマンド
    一覧 $ docker-machine ls
    作成 $ docker-machine create --driver virtualbox <name>
    削除 $ docker-machine rm <env>
    起動 $ docker-machine start <env>
    停止 $ docker-machine stop <env>
    再起動 $ docker-machine restart <env>

    docker image のダウンロード

    Wercker の pipeline を動かすには Docker image が必要です。 Docker image は wecker.yml で指定している box と同じ物をローカルに pull しておきます。私の場合は Docker オフィシャルの image(Ruby) を使っています。

    $ docker pull ruby
    Using default tag: latest
    latest: Pulling from library/ruby
    43c265008fae: Pull complete
    af36d2c7a148: Pull complete
    143e9d501644: Pull complete
    f6a5aab6cd0c: Pull complete
    0d11d0f43400: Pull complete
    40a384d2134a: Pull complete
    d7898cfef5a3: Pull complete
    30fdcd2fefdc: Pull complete
    Digest: sha256:21a22bcc774f25c99bf5f27f16f8b4666f4ccbcb457e06f7a7e06a4728ea640b
    Status: Downloaded newer image for ruby:latest
    

    補足:Docker image の操作

    Docker は image をもとに container を作成し起動して使います。

    作業 コマンド
    image の一覧 $ docker images
    image の取得 $ docker pull <images>
    image の削除 $ docker rmi <images>
    image から container の起動 $ docker run -i -t -d <image> /bin/bash
    image から container を作成 $ docker create --name <name> <image>
    container の一覧 $ docker ps
    container を起動 $ docker start <container>
    container を停止 $ docker stop <container>
    container を再起動 $ docker restart <container>
    container を削除 $ docker rm <container>
    container に接続 $ docker attach <container>

    Wercker CLI

    Docker の準備ができたら Wercker CLI を使っていきましょう。

    Wercker CLI のインストール

    Wercker CLI のインストールは Homebrew を使います。$ brew tap で Wercker のフォーミュラを追加してインストールを行います。

    $ brew tap wercker/wercker
    $ brew install wercker-cli
    

    Wercker に CLI からログインする

    $ wercker login で CLI からログインします。

    github でWerckerにログインしている場合はこちら GitHub アカウントを使っている場合に wercker CLI で認証を通す方法 を参考にしてください。

    Wercker CLI で pipeline を動かしてみる

    $ wercker build コマンドで pipeline を実行します。とりあえずこれで pipeline を動かせるところまできました。エラーを確認したい場合はオプション $ wercker --debug --verbose build を追加して実行します。

    終わりに

    今回、 pipeline を実行できるところまではいけたので時間ができたら deploy とかまで手を出してみたいと思います。

    参考記事

    コメント・フィードバック