werckerを使っていてローカルではテストが通るのにCIではコケる場合にデバッグする方法です。
いづれの方法もテスト実行時の状態のdocker imageをローカルに持ってくる方法になります。
前提条件
ローカルでdockerが使えること。
方法1: ローカルでCIを実行する
wercker cliをつかってローカルでCIを実行する方法です。
wercker cliのインストール(Mac)
brew tap wercker/wercker
brew install wercker-cli
実行
wercker build --no-remove
--no-remove
をつけるとdocker containerが残るので containerに入ってデバッグします。
方法2: werckerでbuildしたimageをpullする
wercker上でbuildしたimageをpullする方法です。
方法1と同様にwercker ciを使います。
wercker.yml
以下を追加します。
wercker.yml
build:
after-steps:
- internal/store-container
wercker pull
wercker上でbuildが走ったあとに以下のコマンドでpullできます。
wercker login
wercker pull isule/test
githubのアカウントを使っていてログインできない、ってひとはこちらを参照ください。
方法3: werckerでbuildしたimageをdockerhubにpushする
方法2は自分の環境では以下のエラーになって実行できませんでした。
ERROR No finished builds found for this application
FATAL Exiting.
そんなときはwerckerでbuildしたimageをdockerhubにpushしましょう。
wercker.yml
以下を追加します。
wercker.yml
build:
after-steps:
- internal/docker-push:
username: $DOCKER_HUB_USERNAME
password: $DOCKER_HUB_PASSWORD
tag: debug
repository: my/repository #適宜変更
registry: https://registry.hub.docker.com
DOCKER_HUB_USERNAME
とDOCKER_HUB_PASSWORD
を環境変数に追加します。
実行
buildを実行すればdockerhubにpushされるはず。
以上です。