TLDR
werckerのパイプラインはDockerコンテナ内で実行される。wercker.yml
にinternal/docker-push
というステップを組み込むと、その時点のコンテナの状態をDockerイメージ化し、Docker Hubにpushすることができる。これを使うとパイプラインがうまく動かないとき問題調査に役立つかもしれない(実際に調査に使ったことはまだないので)。
wercker.ymlにinternal/docker-pushを追加
steps:
# (中略)
- internal/docker-push:
username: $DOCKERHUB_USERNAME
password: $DOCKERHUB_PASSWORD
repository: myname/repo_name
$DOCKERHUB_USERNAME
, $DOCKERHUB_PASSWORD
は環境変数で指定しておく。
以上を記述してパイプラインを実行すると、Docker Hubにイメージがpushされる。
Docker Hubにpushされたイメージを実行
ローカルにて
$ docker run -it --rm myname/repo_name /bin/bash
Dockerコンテナ内にて
root@5a8e4cdd3366:/# cd /pipeline/
root@5a8e4cdd3366:/pipeline# ls -l
total 24
drwxr-xr-x 2 root root 4096 Feb 17 01:01 cache
drwxr-xr-x 2 root root 4096 Feb 17 01:01 output
drwxr-xr-x 2 root root 4096 Feb 17 01:01 script-9154b912-8d10-4d94-804a-18ab5832c388
drwxr-xr-x 2 root root 4096 Feb 17 01:01 script-d3b86d33-24a1-4cfd-8a44-f3c60022eb17
drwxr-xr-x 3 root root 4096 Feb 17 01:01 source
drwxr-xr-x 2 root root 4096 Feb 17 01:01 wercker-init-f0f3b304-4197-4328-9524-348011fce6fb
こんな感じで/pipeline
に各種ファイルが保存されているので、ここを調べれば良い。