この記事はNI+C Advent Calendar 2021 22日目の記事となります。
今回はGoogle Cloudでホストされるリソースやアプリケーションの管理に使用できるツールのCloud SDKをコンテナに導入する方法を紹介します。
以前、コンテナにCloud SDKの導入が必要なことがあったため、その時のメモを元に備忘録的な感じで書いていきたいと思います。
手順
##0. 準備
適当なフォルダを準備して、その中にDockerfileを用意します。
mkdir sample && cd sample
touch Dockerfile
以降は用意したDockerfileに記述していく内容となります。
##1. イメージ
今回はUbuntu18.04のOSイメージを使用して作成していきます。
このイメージを使用した理由としては、DebianとUbuntuでは導入方法がほぼ同じな為です。
どういうことかと言いますと、pythonやGoなどのdockerhubに公開されているイメージを見るとFROM buildpack-deps:xxx
がOSイメージとして採用されているのですが、大元をたどるとDebianベースなので、今回の方法を流用することで他のイメージにもインストールできるかと思います。
FROM ubuntu:18.04
##2. ツールインストール
Cloud SDKの導入の際に必要なツールをUbuntu内にインストールしていきます。
ツールは以下のものをインストールしていきます。
- curl
- sudo
- apt-transport-https
- ca-certificates
- gnupg
RUN apt-get update -y && \
apt-get install -y curl && \
apt-get install -y sudo && \
apt-get install -y apt-transport-https && \
apt-get install -y ca-certificates && \
apt-get install -y gnupg
##3. Cloud SDKインストール
最後にCloud SDKのインストールを行います。
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && \
sudo apt-get update -y && \
sudo apt-get install google-cloud-sdk -y
これでDockerfileの作成は終わりです。このあとDocker build
を行い作成したコンテナに入り、初回起動コマンドのgcloud init
を行って完了となります。
まとめ
作成したDockerfileをまとめて載せたいと思います。
FROM ubuntu:18.04
# 必要なコマンド類のインストール
RUN apt-get update -y && \
apt-get install -y curl && \
apt-get install -y sudo && \
apt-get install -y apt-transport-https && \
apt-get install -y ca-certificates && \
apt-get install -y gnupg
# Cloud SDKインストール
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && \
sudo apt-get update -y && \
sudo apt-get install google-cloud-sdk -y
今回は作成のみでイメージの軽量化なんかはできていないのでそのあたりもチャレンジしていけたらなと思っています。
#おわりに
今回この記事をまとめている際にこのようなものを見つけました。
ちゃんと公式から出ていたのですね。。。(ドキュメントは隅から隅まで見ろ)
この記事を利用してdevコンテナを作ってみたり、他のイメージにCloud SDKをインストールして利用していただければ幸いです。
最後までご覧いただきありがとうございます。
参考文献:
Cloud SDK のインストール