0
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.

Cloud Build デプロイ用に tarとsshが入ったイメージを作成してsubmitする

Last updated at Posted at 2019-05-05

GWがもう終わってしまう。。。復帰に向けてそろそろコード書かないとな。


Cloud Buildでのデプロイ時のサーバー転送用に、tarとsshが使えるイメージが欲しかったので、
手元で作成して、Container Registryにsubmitする方法をまとめてみる。

質問・訂正・改善・苦情・ご意見あれば、コメントにてよろしくお願いします。

事前準備

  • gcp上に対象プロジェクトがあること
  • gcloud コマンドが使えること
  • gcloud auth login してること
  • gcloud config set project {project_name} で対象プロジェクトを指定していること

この辺毎度必要になってくるので別途まとめておきたい。

この辺り、まとめました。
gcloudコマンド事始め(Docker)

APIを有効化

下記のAPIを Google Cloud Platform Console で有効にする。

  • Container Registry API
  • Cloud Build API

Dockerfileを用意

とりあえずこんな感じ

FROM debian:stretch

RUN apt-get update && apt-get install -y --no-install-recommends \
	tar \
	bzip2 \
	gzip \
	ssh \
	&& apt-get clean \
	&& rm -rf /var/lib/apt/lists/*

tar, ssh 圧縮用に gzipとbzip2入れてみた。

Submit(Container Registryにイメージをアップロード)

# 前述のDockerfileがあるディレクトリで

# プロジェクト名
PROJECT_ID=some_project_name

# 新しく作成するイメージの名称
IMAGE_NAME=some_image_name

# Submit ・・・ ①
gcloud builds submit --tag="gcr.io/${PROJECT_ID}/${IMAGE_NAME}” . 

=> 〜中略〜
DONE
----------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                         IMAGES                                       STATUS
50a5d6bb-fa95-4f81-9285-53d89810c8f8  2019-05-05T04:05:28+00:00  27S       gs://some_project_name_cloudbuild/source/1557029126.14-0ddbe2bb56eb403eb31ac9176e580258.tgz  gcr.io/some_project_name/some_image_name (+1 more)  SUCCESS

こんな感じ。

①の 『.』 は対象をカレントに指定してるのでタイポじゃないです。

Cloud Buildでの使い方

cloudbuild.yml にて、name属性に、作成したイメージのtag名[gcr.io/~]を指定すると、ビルドステップの中で、
Submitとしたイメージをpullして使ってくれます。

steps:
- id: deploy
  name: gcr.io/some_project_name/some_image_name
  entrypoint: bash
  args:
    - '-c'
    - |
      tar cvz ./ | ssh somevps tar zxv -C /home/ubuntu/dist/

今回の場合、tarとsshがステップの中で使えるようになる。

まとめ

Cloud Buildのビルドステップに使うイメージで、gcloud, maven, npm などビルトインで用意してくれてるもの以外が使いたい場合、自分で用意したほうが勝手が良いと思う。
必要最小限の欲しいものだけ突っ込めるし。コミュニティで別途用意してくれてるものもあるけど、用途と合わないことがままあるので、よろしければお試しください。

0
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
0
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?