Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@koba_ninkigumi

GAE/GoをDocekrで動かす

More than 3 years have passed since last update.

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
9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?