食べられません

プログラミングとか漫画とか生活とか

wercker Classic(Andorian)からDocker enable(Ewok)に移行する

背景

werckerでは4月あたまぐらいからDockerベースになったv2(Ewok)が始まり、
記事を書いてる6月時点でdefaultとなっている。
その割にEwokでの記事があまりないので移行にあわせてメモしておく。

前提

移行の話なので既にAndorianで色々やっている前提です。 環境は

簡単に変更内容

  • DockerベースとなったためAndorianで使っていたwerckerのものではなくDockerHubなどのイメージを使う。
  • DeployTargetはCustomしか選択出来ない。
  • オプションや環境変数がちょっと変わった

変更

# 最新のrubyとnode.jsが使える公式のイメージがこれだった。
box: rails:4.2.1

# postgres公式イメージ。POSTGRES_PASSWORDは必須
services:
  - id: postgres
    env:
      POSTGRES_PASSWORD: $DATABASE_PASSWORD

build:
  steps:
    - bundle-install:
        # jobsオプションが効かなくなってしまったのはまだ原因不明...
        jobs: 4

    - rails-database-yml:
        # ここをpostgresqlからpostgresql-dockerに変更
        service: postgresql-docker

    # phantomjsを使う場合
    - aussiegeek/install-phantomjs

    # script部分は特に変更なし
    - script:
        name: echo ruby information
        code: |
            echo "ruby version $(ruby --version) running"
            echo "from location $(which ruby)"
            echo -p "gem list: $(gem list)"

    - script:
        name: db:schema:load
        code: RAILS_ENV=test bin/rake db:schema:load

    - script:
        name: rspec
        code: bin/rspec --color -f d

deploy:
  steps:
    ## HerokuへのDeployで必要な環境変数
    # HEROKU_APP_NAME
    # HEROKU_KEY(API_KEY)
    # HEROKU_USER(HerokuID)
    - heroku-deploy:
        install-toolbelt: true
        key-name: HEROKU_DEPLOY_KEY
    - script:
        name: rake db:migrate
        code: heroku run rake db:migrate --app $HEROKU_APP_NAME