LoginSignup
2
2

More than 5 years have passed since last update.

GAE Go にデプロイするときの .env について

Posted at

GAE Go にデプロイするときの .env どうしようかと思ったのですが

joho/godotenv を使って

ここに書いてあるようにしようと思いました。
https://github.com/joho/godotenv#precendence--conventions

Precendence&Conventions
env := os.Getenv("FOO_ENV")
if "" == env {
  env = "development"
}

godotenv.Load(".env." + env + ".local")
if "test" != env {
  godotenv.Load(".env.local")
}
godotenv.Load(".env." + env)
godotenv.Load() // The Original .env

やることは簡単

FOO という名前のアプリだとして、 FOO_ENV を各環境に設定します。

開発環境は docker-compose なので、

docker-compose.yml
services:
  golang:
    environment:
      FOO_ENV: development

としました。

そして、GAE環境は、以下の参考にしながら
https://cloud.google.com/appengine/docs/standard/go111/config/appref

app.yaml
runtime: go111
env_variables:
  FOO_ENV: production

としました。

あとは、環境ごとに .env を用意します。

.env.development
.env.production

これで、gcloud app deploy として無事動きました。めでたしめでたし。

だけど、途中でひとつこまったことがあります。

GAE の環境変数が正しく設定されているのかを確認したくて、GAE に ssh しようと思ったのですが、うまくいきませんでした。原因は僕が今使っているのが、フレキシブル環境ではなく、スタンダード環境だったからでした。たぶん。

フレキシブル環境だとドキュメント見つかるけどスタンダードだと見つからずでした。
https://cloud.google.com/appengine/docs/flexible/go/debugging-an-instance?hl=ja

以上です :lemon:

2
2
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
2
2