2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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概要
https://cloud.google.com/container-registry/docs/overview?hl=ja

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?