Circle CIからHeroku registryにpushする
DockerコンテナをHeroku上で実行したい場合、Heroku registryにDockerイメージをpushすることになる。これをCircle CIで行いたい。
Heroku registryの認証はHeroku CLIかdocker login
コマンドで行うことができるが、Heroku CLIのセットアップを"Docker in Docker"イメージ(ベースがalpine)上で行うのはけっこうたいへんなので、以下のようにdocker login
コマンドから行うと良い。
$ docker login -u _ -p $HEROKU_API_KEY registry.heroku.com
$HEROKU_API_KEY
はheroku auth:token
コマンドで取得したトークンを環境変数で設定しておく。
.circle/config.yml
はこんな感じになる。
steps:
# ...
- deploy:
name: Push image to Heroku registry
command: |
docker login -u _ -p $HEROKU_API_KEY registry.heroku.com
docker tag myapp registry.heroku.com/$HEROKU_APP/web/myapp
docker push registry.heroku.com/$HEROKU_APP/web/myapp