Bibo-log

Bibo-log

主にやってみたことを記録していきます。

【GCP】ローカルのDockerコンテナをGCPへPushする

2021年の初投稿。年初から仕事上いろいろありまして、あまりというか全くStudyできなかった。
具体的には長期出張してて、そこのWifi環境が悪く、、でもやりようはあったはずなので、ただの言い訳でした。

新しくやりたいこと

これまでとあるお勉強サイトを使って、それをなぞってみるいうことをやりました。
でも、ちょっとサイトが古いというのと、Qwiklabの無料トライ期間とぶつかりそちらに熱中、結果そのサイトを見なくなり、、。

そして仕事上、とあるPythonスクリプト群を常時動かし続けたいというものがありまして、
でも、いきなり社内のシステムのどこかで動かす、というのもちょっと気軽には難しいので、
まずはローカル環境でやってみようと。

もちろん仕事上と言っても、社内の情報を出したりする話ではないです。
インターネット上の怪しい、具体的には自社に関連しそうなフィッシングサイトを見つけたい!というもの。
そのスクリプト自体は、私が作るのではなくて、某所から提供されているので、少しカスタムするだけ。その内容は割愛します。

ローカル(MacBook)ではできたので、GCPで動かしたい

Docker Desktopをインストールして、少しやり方をググればローカルにコンテナを稼働させることは驚くほど簡単。
Docker Desktopのインストールはbrewでやるか、Dockerのサイトでアカウント作ってダウンロードしてってくらい簡単なので割愛。

コンテナ立ち上げるところは、

docker pull ubuntu:latest
docker run -it -d --name ubuntu

pythonスクリプトをコンテナの中にコピーする。
docker cp xxxxxx.py ub2:/home/tools/.

pythonを動かすので、必要なものをインストール。
多分、DockerFile作ってそれをビルドすれば一発なんだろうけど、お試しなのでまずはこんなやり方。

docker exec -it /bin/bash
apt-get update
apt-get install -y python3 python3-pip
pip3 install boto3
pip3 install xxxxxx ←必要に応じて

はい。これで環境はOK。
あとはpythonスクリプトを実行してみるだけ。

ちなみに、VSCodeでは、Dockerのプラグイン入れればコンテナ内のコードも更新可能。
これはとても便利だった。

f:id:atakaha453:20210304060647p:plain

まずはローカルのDockerコンテナをGCPへPushする

やり方は公式ガイドに従えばOK
cloud.google.com

と、その前に認証&認可を済まさねば。
gcloud auth login

ブラウザが立ち上がり、Googleアカウントの認証をする。
f:id:atakaha453:20210305054730p:plain

プロジェクトIDを設定
gcloud config set project PROJECT_ID

Dockerを使えるようにする
gcloud auth configure-docker

イメージにタグづけして、それをPush!!
docker tag ubuntu asia.gcr.io/PROJECT_ID/
docker push asia.gcr.io/PROJECT_ID/

GCRに登録されたね。さて、これは始まりに過ぎず、ここからCloud Runに持ってってそこで動かすのがやりたいことなので、つづく。
f:id:atakaha453:20210305054707p:plain