macOS SierraでGAE/GoのSDK(1.9.40)がエラーになってビルドやデプロイができない。
回避方法としては、VMでやったり、Dockerでやったり Google Cloud Shellでやったりが考えられる。
このページでは Dockerでやってみる。
といっても、すでにDockerfileを公開している人がいるのでコマンド一発でOKである。
- Dockerのセットアップは完了している前提
- DockerやるならAlpine
A. 開発環境サーバーを立ち上げる
PROJECT_NAME=sample-project
cd ~/google-appengine-sdk/src/$PROJECT_NAME/default
docker run -it -v ~/google-appengine-sdk/src/$PROJECT_NAME/default/:/app \
-v ~/go/src:/go/src \
-p 8080:8080 -w /app \
zadki3l/gae-go-alpine goapp serve --host=0.0.0.0
- プロジェクト名(sample-project)を自分のプロジェクト名にする
- ~/google-appengine-sdk/src/$PROJECT_NAME/default/の部分はローカルサーバーのapp.yamlが含まれているディレクトリを指定する
- ~/go/src の部分はローカルサーバーで echo $GOPATH の結果に /src を追加する
(追記) 上記だとadmin serverにアクセスできないようです。admin serverを使用する場合は、下記のようにdev_appserver.pyを使用します。
PROJECT_NAME=sample-project
cd ~/google-appengine-sdk/src/$PROJECT_NAME/default
docker run -it -v ~/google-appengine-sdk/src/$PROJECT_NAME/default/:/app \
-v ~/go/src:/go/src \
-p 8080:8080 -w /app \
zadki3l/gae-go-alpine dev_appserver.py \
--host 0.0.0.0 --admin_host 0.0.0.0 \
--skip_sdk_update_check true app.yaml
B. デプロイする
PROJECT_NAME=sample-project
cd ~/google-appengine-sdk/src/$PROJECT_NAME/default
docker run -it -v ~/google-appengine-sdk/src/$PROJECT_NAME/default/:/app \
-v ~/go/src:/go/src \
-w /app zadki3l/gae-go-alpine goapp deploy
C. docker環境にログインして設定を確認する
万が一エラーになるときは docker環境にログインして調べる
PROJECT_NAME=sample-project
cd ~/google-appengine-sdk/src/$PROJECT_NAME/default
docker run -it -v ~/google-appengine-sdk/src/$PROJECT_NAME/default/:/app \
-v ~/go/src:/go/src \
-w /app zadki3l/gae-go-alpine /bin/sh