LoginSignup
2
0

More than 5 years have passed since last update.

werckerのdocker-pushでDockerイメージをContainer Registry(GCR)に登録する

Last updated at Posted at 2019-04-12

やりたいこと

1.Javaのソースコードをbitbucketにpush
2.werckerでビルド
3.ビルドされたjarをDockerイメージに配置
4. 3.のイメージを、GCE上で動かす (※別記事を書く予定です。本記事では触れません。)

wercker.yml

プロジェクト直下に配置します。
internal/docker-pushについて定義を書いていきます。
前段のpipelineでbuildを行うことで、必要なjarファイルが/pipeline/output配下にコピーされています。
docker-pushでは、/pipeline/output配下のファイルたちが
Dockerイメージ内の/pipeline/sourceにコピーされるので、
キックしたいjarファイルのファイルパスは下記のようになっています。

wercker.yml
my-wercker-process:
  box: gcr.io/google-appengine/openjdk
  steps:
    - internal/docker-push:
      # 固定文字列
      username: _json_key
      #GCPのサービスアカウント発行時にダウンロードできるjson
      password: $GCR_JSON_KEY_FILE
      repository: gcr.io/$PROJECT_ID/$MY_IMAGE
      registry: https://gcr.io/v2
      ports: 8080
      # 環境変数
      env: "hoge=value1 fuga=value2"
      # jar実行
      entrypoint: java -Djava.security.egd=file:/dev/./urandom -jar /pipeline/source/app.jar

wercker上の設定

下記画面で設定したkey-valueが、wercker.ymlの$に格納されます。
※keyは適当です

スクリーンショット 2019-04-09 17.15.22.png

つまずきポイント(1): internal/docker-pushを使う場合、internal/docker-build内でDockerfileを用いたdocker buildはできない

steps:
- internal/docker-push:
の前段で
- internal/docker-build:
dockerfile: Dockerfile
みたいなことをしていたのですが、Dockerfileに書いた内容がイメージに反映されませんでした。

そのかわりにdocker-push内にイメージ作成の定義を書けます。
https://devcenter.wercker.com/administration/containers/building-an-image/

つまずきポイント(2): docker-pushしたらGCPに拒否られた

GCRのサービス アカウントのIAMの設定で、
【ストレージ管理者】
を追加してあげてください。

スクリーンショット 2019-04-09 17.10.46.png

結果

ContainerRegistryのイメージ一覧に、
repository: gcr.io/$PROJECT_ID/$MY_IMAGE
で登録した$MY_IMAGEの名前でイメージが登録されていれば成功です。
スクリーンショット 2019-04-15 10.25.22.png

参考URL

docker-push

https://devcenter.wercker.com/administration/containers/pushing-images/
https://devcenter.wercker.com/development/steps/internal-steps/#internal-docker-push

Container Registry概要

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0