St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

【Golang】godotenv を使ってenvファイルを扱う

こんにちは。

今日は、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
}

以上です。