Windows 10 Homeでdockerを使ってgcloud SDK環境を構築する

はじめに

本記事ではWindows 10 Home上に gcloud SDK環境を構築する手順を説明します。WindowsのコマンドプロンプトやPowerShell上で動作するgcloudの環境構築でも良いのですが、あくまでLinuxのシェルが使える環境が良く、何か設定ミスなんかがあった際に最初から簡単にやり直せるのは何かと考えたときに docker desktop for windowsで環境構築するのが良いのでは、と思った次第です。

本記事を最後まで読んで頂いた際に出来上がるものは以下です。

”Windows 10 が立ち上がったら次の10秒で gcloud のコマンドが叩ける状態を作る”

もしご興味がありましたらそのまま読み進めてください。

実施手順

docker desktop for Windows をインストールする

docker desktop のインストールについてはこちらの記事を参考にしてください。

gcloud SDKのイメージを Pull リクエストする

docker desktop for Windows がインストール済みの環境で PowerShell を起動し、以下のコマンドでイメージのダウンロードを実施してください。

イメージサイズが大きいので環境にも依りますが、数分程度はかかります。

コマンド

docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest

gcloud SDK のコンテナを起動する

こちらはどのようにコンテナを利用するかによりますが、私の場合は以下のコマンドを使用しました。

コマンド

docker run -it -d –name gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk:latest

コンテナのシェルにログイン

docker desktop から作成したコンテナの CLI を開いてください。

sshd のインストール

以下のコマンドで sshd をインストールしてください。

コマンド

apt install ssh

vim のインストール

以下のコマンドで vim をインストールしてください。(他のエディタでも構いません)

コマンド

apt install vim

ssh ログイン用のユーザを作成する

以下のコマンドでユーザを追加してください。ユーザ名は任意ですが、私のは pi というユーザー名とします。

コマンド

adduser pi

また、以下のコマンドで 作成した user に sudo の権限をつけておいてください。

コマンド

gpasswd -a pi sudo

起動スクリプトの設定

本来であれば systemctl のコマンドを使って起動時の sshd のサービスを起動するのが簡単なのですが、WSL2環境においてはそれが容易ではないようです。そのため、以下のスクリプトを用意して sshd をコンテナ起動時に実行できるようにします。また、スクリプトファイルに permission も設定しておくことを忘れないでください。

コマンド

vi init.sh
chmod 777 init.sh

init.sh ファイルに書き込む内容は以下の内容とします。

ファイルの内容

#!/bin/bash
service ssh start
tail -f /dev/null

今までの設定を反映させたイメージの作成

以下のコマンドで 今まで実施してきた設定を反映させたイメージを作成します。

コマンド

docker stop gcloud-config
docker commit gcloud-config mygcloud
docker rm gcloud-config

作成したイメージからコンテナを改めて起動

以下のコマンドを使用します。例えば PCの再起動時に自動でこのコンテナを起動するように、–restart=alwaysのオプションと、sshで接続するためのポートフォワーディングのオプションを追加しています。

コマンド

docker run -it -d -p 49153:22 –restart=always –name gcloud-config mygcloud ./init.sh

コンテナアクセスのためのショートカットの作成

Windowsのデスクトップで右クリックして出るメニュー中から 新規作成 -> ショートカットを選択してください。

何のショートカットを作成するのかを聞かれますので、参照ボタンを押して teratermpro.exe を選択してください。私の Windows 10 Home の環境で teratermpro.exe を選択すると以下のようなイメージになりました。

ここで完了ではなく、プログラムの後ろに以下の設定を追加してください。user には先ほどコンテナで作成したユーザ名、passwd にはユーザのパスワードを入力してください。(あまり影響ありませんが、パスワードなので以下の例ではパスワードをXXXXXXとしています。)

追加内容

127.0.0.1:49153 /user=pi /passwd=XXXXXX

最終的に以下のような設定となります。

最終的に入力する内容のサンプル

“C:\Program Files (x86)\teraterm\ttermpro.exe" 127.0.0.1:49153 /user=pi /passwd=XXXXXX

これで次をクリックし、最後にショートカットの名前を付けてください。

ショートカットからコンテナにアクセスしてみる

作成したショートカットをダブルクリックすると以下のような画面が表示されます。このまま続行をクリックしてください。

先ほどショートカートに設定したユーザー名、パスワードが設定された状態で表示されますので、そのままOKとしてください。

するとどうでしょう。ヌルリとコンテナのシェルが起動することを確認できたかと思います。あともうひと踏ん張りです。

Googleアカウント の Authentication の実施

以下のコマンドで gcloud の Authentication を実施してください。

コマンド

gcloud auth login

実行すると https から始まる URL が表示されるので、WebブラウザからこちらのURLにアクセスすると、google アカウントの認証が行われます。認証後に入手できるコードを verification code として入力してください。

GCPプロジェクトの設定

以下のコマンドで google cloud のプロジェクトを設定してください。私の場合は mqtt-test-282007 としましたが、こちらは実際に使われている Project IDを入れてください。

コマンド

gcloud config set project mqtt-test-282007

これでこの記事でお伝えしたかった内容は以上です。ここまで設定すれば、PCを再起動しようが、コンテナが自動的に立ち上がってくれますので、作成したショートカットをクリックするだけで gcloud のコマンドが入力できる状態となります。改めて google アカウントへのアクセス権や、プロジェクトを設定する必要もなくなります。

最後に

本記事では Windows 10が立ち上がった後、10秒で gcloud のコマンドが叩ける環境を作る方法を説明しました。セキュリティ的には多少危ない橋も渡っていますので、実施はあくまで自己責任と考えてください。

ただ…便利なのは間違いありませんので、私の環境はしばらくこれで使っていこうと思います。何かご不明点がありましたらお気軽にお問合せ下さい。