こんにちは。
今日は、envファイルをGoで扱うために、godotenvを使った方法を試してみたいと思います。
godotenvとは
Goには環境変数を読み込んで処理する方法がありますが、godotenvは、envファイルから環境変数を読み込むことができるライブラリです。
Install
$ go get github.com/joho/godotenv
使い方
まずはenvファイルを用意する
通常、dev/stg/prodで分けてenvファイルを用意するケースもあると思いますので、次のような感じで用意します。
├── env │ ├── dev.env │ ├── prod.env │ └── stg.env ├── go.mod ├── go.sum └── main.go
ちょっと余計なものも混じっていますが、基本的にはそれぞれの環境変数を上記のように用意します。そして、各envファイルに、以下の値を入れておきます。
DB_HOST=host
envファイルの読み込みと利用
あとは、以下のような感じで利用することができます。
package main import ( "fmt" "os" "github.com/joho/godotenv" ) func main() { err := godotenv.Load("env/dev.env") // envファイルのパスを渡す。何も渡さないと、どうディレクトリにある、.envファイルを探す if err != nil { panic("Error loading .env file") } host := os.Getenv("DB_HOST") // 読み込んだ後の使い方はいつも通り fmt.Println(host) // host }
以上です。