社内からインフラの基礎を知りたいということで、Linux雑談しつつGoogle CloudのCompute EngineにWordPressを構築する突発ハンズオン(ノー準備)を開催しました。そのときの作業メモです。
カテゴリー: Google Cloud
Google Cloud学習用コンテンツ及び関連サービスまとめ
仕事でGoogle Cloudを触っているのですが、情報が散らばっているのでまとめてみます。
学習用コンテンツや情報収集のためのリンク集です。定期的にメンテ予定。
Packerを使ってGCEのマシンイメージを作成する
Packerを使ってCompute Engineのマシンイメージを作成し、Google Cloud上のプロジェクトに保存する方法です。
Cloud Run+Cloud Buildで、GitのCommitIDをコンテナ内に詰めてデプロイされている内容を確認しやすく
Google Cloudを使ったアプリケーション開発において、「簡単にデプロイされているアプリのバージョンを確認したい」という要望があったので、gitのCommit IDやpushしたタグをコンテナに詰める方法をメモっておきます。
なお、メインはCloud Buildのため、Cloud RunとSource Repogitriesについては省略しています。
ディレクトリ構成
┣cloudbuild
┃┗cloudbuild.yaml
┗container
┣Dockerfile
┗html
┗index.html
cloudbuild/cloudbuild.yamlの中身(の一部)
steps: - name: gcr.io/cloud-builders/docker args: - build - '--no-cache' - '-t' - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA' - container - '-f' - container/Dockerfile - '--build-arg' - COMMIT_SHA=$COMMIT_SHA - '--build-arg' - TAG_NAME=$TAG_NAME id: Build (長いので以下略/Cloud RunをWebコンソールから作ったときに作成されるものと同じ)
container/Dockerfile の中身
FROM nginx COPY ./html /usr/share/nginx/html ARG COMMIT_SHA ARG TAG_NAME ENV COMMIT_SHA ${COMMIT_SHA:-local} ENV TAG_NAME ${TAG_NAME:-local} RUN echo ${COMMIT_SHA} > /usr/share/nginx/html/commit.txt RUN echo ${TAG_NAME} > /usr/share/nginx/html/tag.txt
--build-arg を使ってCOMMIT_SHAとTAG_NAMEを渡します。
ビルド時にARGで受け取った後、環境変数に格納して公開ディレクトリのテキストファイルに書き出しています。
上記画像の場合、[URL]/commit.txtにアクセスすると、「42e23d574a162804813b1a5dee1da7cb8247f734」
[URL]/tag.txtにアクセスすると、「1.0.2」のテキストが表示されます。