WerckerでQuay.ioのPrivate Repositoryを使用する

  • 13
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事はAndroidのCI環境をCircleCIからWerckerにした話に関連した投稿です。

概要

wercker.ymlのboxにQuay.io(キーio)でホストしたrepositoryを指定する方法についてのメモです。

Quay.ioは、セキュアなDocker private repositoryのホストサービスになります。Dockerのホスティングサービスは複数ありますが、社内の他プロジェクトで利用実績のあるQuay.ioを使用します。

wercker.ymlの例

以下はAndroidプロジェクトをビルドするwercker.ymlです。boxにはDockerHubのPublic Repositoryに登録したimageを使用しています。このboxで指定しているRepositoryをQuay.ioでホストした物に変更します。

wercker.yml
box: horie1024/wercker-android-build:0.1
build:
  steps:
    - script:
        name: execute unit test
        code: |
          ./gradlew testDebug
    - script:
        name: execute assembleRelease
        code: |
          ./gradlew assembleRelease

wercker.ymlのboxセクションでPrivate Repositoryを指定する

wercker.ymlのboxセクションでPrivate Repositoryを指定する方法は、こちらのドキュメントが参考になります。そして、Quay.ioではyamlは以下のようになります。

idにはRepository名、username、passwordについては、WerckerのWeb UIで入力した環境変数を参照するようにします。

build:
  box:
    id: quay.io/knuth/golang
    username: $USERNAME
    password: $PASSWORD
    tag: beta
    registry: quay.io
  steps:
    - script:
      name: echo
      code: echo "hello world!"

ドキュメントとは異なりますが、以下のようにyamlを書いても問題ありませんでした。個人的にはこちらの方がわかりやすい気がします。

box:
  id: quay.io/knuth/golang
  username: $USERNAME
  password: $PASSWORD
  tag: beta
  registry: quay.io
build:
  steps:
    - script:
      name: echo
      code: echo "hello world!"

また、DockerHubのPrivate Repositoryの場合以下のようなyamlになります。DockerHubの場合registryの指定は不要です。

build:
  box:
    id: guido/python
    username: $USERNAME
    password: $PASSWORD
    tag: latest
  steps:
    - script:
      name: echo

Werckerの環境変数に登録するusernameとpasswordを用意する

WerckerでPrivate Repositoryを使用するためには、usernameとpasswordが必要になるため、Quay.ioのRobot Accountsを作成し、そのusernameとpasswordをWerckerのWeb UIから登録します。

Robot Accountsの作成

Quay.ioにログインすると以下のような画面が開くので、左側のメニューから「Robot Accounts」を選択します。そして、右上の「Create Robot Account」をクリックしRobot名を入力してEnterを押します。これでRobot Accountが作成されます。

quay1.png

Robotのusernameとpasswordの取得

Robot Account Nameをクリックするとusernameとpasswordが表示されます。

quay2.png

Werckerへの登録

Werckerのドキュメントを参考に入力すればOKです。
http://devcenter.wercker.com/docs/environment-variables/creating-env-vars.html