ホスト環境を汚さずにGCP開発を行う準備(Docker)その2

前回の続き。 Python3.7のクイックスタートガイドを行う前準備です。
コンテナ内の”SDK再インストール”と”Pythonバージョンアップ”を行います。

自分の環境

● ホスト端末:MacBook
● 作業日:2019年6月

Google Cloud SDKの再インストール

コンテナ内のSDKは不完全な模様。
ガイドに従って、コンポーネントを最新化しようとするとエラーとなってしまいます。

> gcloud components update
ERROR: (gcloud.components.update)
You cannot perform this action because the Cloud SDK component manager
is disabled for this installation. You can run the following command
to achieve the same result for this installation:
sudo apt-get update && sudo apt-get --only-upgrade install kubectl google-cloud-sdk google-cloud-sdk-app-engine-grpc google-cloud-sdk-pubsub-emulator google-cloud-sdk-app-engine-go google-cloud-sdk-cloud-build-local google-cloud-sdk-datastore-emulator google-cloud-sdk-app-engine-python google-cloud-sdk-cbt google-cloud-sdk-bigtable-emulator google-cloud-sdk-app-engine-python-extras google-cloud-sdk-datalab google-cloud-sdk-app-engine-java


「代わりにこのコマンドを打て」と出るが、打っても上手く最新化できないコンポーネントもありました。
よって、Google Cloud SDKの再インストールを実行しました。
(つまり、Dockerイメージでわざわざgoogle/cloud-sdkイメージを利用した意味なかった...)

手順としては以下の通り。途中で、Googleアカウントの認証を求められるので従う。認証はターミナルに出てきたURLにブラウザでアクセス・認証し、ブラウザに表示される文字列をターミナルに入力するだけで良い。

> curl https://sdk.cloud.google.com | bash  
> cd /root/
> ./google-cloud-sdk/install.sh
> ./google-cloud-sdk/bin/gcloud init

以上を行えば、全コンポーネント最新がインストールされます。
コンポーネント最新化するコマンドも問題なく打てる。

(コンテナからログアウト・再ログイン)
> gcloud components update
All components are up to date.

# Pythonを3.7にバージョンアップさせる

クイックスタートガイドにはPython3.7と記述されているが、このコンテナのPythonは3.5でした。

> python3 --version
Python 3.5.3

なのでバージョンアップさせます。aptを利用してバージョンアップさせようとしたが、上手くいかない。以下コマンドでPythonを探しても3.7が存在していない。

> apt search python3.7-*
Sorting... Done
Full Text Search... Done

探索リポジトリを追加する方法もあるようだったが、今回はcurlを利用してバージョンアップさせることにしました。

> apt-get install make
> cd /usr/local/src
> curl -O https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
> tar zxf Python-3.7.3.tgz
> cd Python-3.7.3
> ./configure
> make && make altinstall
> ln -sf /usr/local/bin/python3.7 /usr/bin/python3
> python3 --version
Python 3.7.3

ソースの編集方法

マウントされているディレクトリを利用します。ホスト端末のマウントされているディレクトリにあるソースを更新すれば、コンテナ内のソースも更新されるという方法です。ただ。最近は直接コンテナ内のソースを修正する方法もあるので、機会があればそちらも試そうと思います。

以上で開発準備完了です。後はクイックスタートガイドに沿って行うだけ。

=============================
「役に立った!」「時間削減に繋がった」という方、
よろしければ、以下からサポートよろしくお願いします。
投げ銭ページ
=============================

この記事が気に入ったらサポートをしてみませんか?