Wercker CLI で pipeline をローカルで実行する
はじめに
前回の記事 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 とかまで手を出してみたいと思います。