LoginSignup
10
9

More than 5 years have passed since last update.

GAE/GoをDocekrで動かす

Last updated at Posted at 2016-10-03

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
  1. プロジェクト名(sample-project)を自分のプロジェクト名にする
  2. ~/google-appengine-sdk/src/$PROJECT_NAME/default/の部分はローカルサーバーのapp.yamlが含まれているディレクトリを指定する
  3. ~/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
10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9