はじめに
こんにちは、SREエンジニアやってます。@hayaosatoです。
今回はGCPのCloud Runの入門としてbeegoで作ったアプリケーションをデプロイしてみたいと思います。
beego
beegoはGoのフルスタックなWebアプリケーションフレームワークで、beeというCLIツールがあり、Railsライクなフレームワークです。
今回CloudRunでデプロイするアプリケーションはこのbeegoで作成したアプリケーションをデプロイしたいと思います。
beegoコンテナのDockefileは以下のようになります。
FROM golang:1.13.5
ENV GOPATH $GOPATH:/go
ENV PATH $PATH:$GOPATH/bin
WORKDIR /go/src
RUN apt update &&\
go get "github.com/go-sql-driver/mysql" &&\
go get "github.com/beego/bee" &&\
go get "github.com/astaxie/beego"
RUN bee new app
WORKDIR /go/src/app
CMD ["bee", "run"]
bee new
でbeegoのアプリケーションを生成して、bee run
でアプリケーションを実行します。
GCP
続いて、先ほど作ったアプリケーションをCloud Runでデプロイしてみたいと思います。
Cloud RunにデプロイするためにはまずはContainer Registryにイメージをpushする必要があります。
Container Registry
レジストリへのpushは以下のコマンドで実行できます。
ホスト名はイメージがホストされている場所で、
- gcr.io
- us.gcr.io
- eu.gcr.io
- asia.gcr.io
のいずれかです。
$ gcloud auth configure-docker
$ docker build -t ${イメージ名} .
$ docker tag ${イメージ名} ${ホスト名}/${プロジェクトID}/${イメージ名}
$ docker push ${ホスト名}/${プロジェクトID}/${イメージ名}
Cloud Run
さて、イメージのpushができたので次はCloud Runでデプロイしていきます。
Cloud Runのコンソール画面からサービスを作成
を選択します。
続いてコンテナイメージのURLには先ほどpushしたイメージを選択します。
リージョン、サービス名、認証を任意の値で設定します。
また、今回動かすbeegoアプリケーションはメモリがデフォルト値の256MiBでは足りないので512MiBに拡張しておきます。
そして、作成
ボタンを押下する事でデプロイすることができます。