【サクッと簡単に!】DockerのGolang環境にEcho をインストール【ホットリロードにも対応!】

Go&Echo!Docker

こんにちは、Coroccuです!

少し前の記事でご紹介したのですが、
Golang(Go言語)の学習を始めています。

なんとなく基礎は分かってきたので、
Webアプリでも作ろうかと思い、
GolangのフレームワークであるEchoを使って、
開発環境を作りました!

なので、その開発環境のご説明と
ソースコードをご提供しようかなと思います。

同じようにGolang&Echoを
勉強される方の参考になれば幸いです!

【サクッと簡単に!】DockerのGolang環境にEcho をインストール【ホットリロードにも対応!】

Echoとは?

「Echo」は、
Golangの軽量なWebフレームワークの1つです。

もう一つ「Gin」というGolang初期の頃からある
フレムワークの採用も考えたのですが、
Echoが「Gin」を参考にしているのと、
Echoの方が新しく、拡張性も高い、かつ
RESTAPIの原則に従っているという理由で
今回は「Echo」を選択しました。

Golang&EchoでAPIサーバ(バックエンド)を作ろうと
今のところ考えているので、RESTチックな方がいいかなぁと。

Golang&Echoの開発環境(Docker)の作り方

ソースコードは私のGitHubリポジトリに置きました。

Dockerfileとdocker-compose.ymlでは、
Golang(Ver. 1.14.2)のDockerイメージを
ダウンロードしてきて、
GolangのMODULE機能をオン、
MODULEを初期化し、
Airというライブラリをインストールしています。
※Airはソースコードを変更すると
 自動でサーバに変更を反映してくれる(ホットリロード)。

あとは、そこに自分のパソコンのフォルダをマウントして、
ポート番号1323で待ち受けているってだけです。

たった、これだけでパソコンにて
Golang&Echoのコードを書き、
実行、ブラウザで確認まで、できちゃいます!

docker-compose.ymlのあるフォルダに移動して、
以下をターミナルなどで実行すると、
Golangのコンテナ環境に入ることができます。
そして、airコマンドを実行すれば、Hellow World!!!を
返す、サーバの出来上がり〜、いやー早くて便利。

  1. docker-compose up -d
  2. docker exec -it go-echo-app bash
  3. air -c work/.air.toml
  4. ブラウザで、http://localhost:1323/ にアクセス!
    →Hellow World!!!がブラウザに出るので確認しましょう!

Golang&Echoのソースコードの説明(Hello World!)

Programming Go&Echo

HTTPリクエストを扱うため、
importで”net/http”を読み込んでいます。
また、”github.com/labstack/echo/v4″を読み込んでおくことで、
プログラム実行時にEchoをダウンロードしてきてくれます。

package main

import (
	"net/http"
	// Import Echo v4.
	"github.com/labstack/echo/v4"
)

func main() {
	// Create an Echo instance.
	e := echo.New()

	// Set Route to helloWorld.
	e.GET("/", helloWorld)

	// Start an Echo server.
	e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func helloWorld(c echo.Context) error {
	return c.String(http.StatusOK, "Hello, World!!!")
}

echo.New()でEchoのインスタンスを作っています。
これでEchoが使えるように、初期化した感じです。

次に、e.GET(“/”, helloWorld)で、
Echoインスタンスに対して、”/“つまり、
以下(ルート)にアクセスがきたら、
http://localhost:1323/ 
helloWorld関数(func)を呼んでね!とお願いしています。

そして、e.Logger.Fatal(e.Start(“:1323”))
でEchoのサーバを起動して、
エラー等が起きたらログに出力するようにしてます。

func helloWorldでは、Hello, World!!!と
アクセスの成功(StatusOK=200OKというやつ)を
返すように書いているだけですね。簡単!

まとめ

ここまで読んで頂き、
ありがとうございました!

今回はDockerでGolang&Echoを実行できる環境を作り、
Webブラウザで「Hello, World!」と表示するプログラムを
実行するまで、をご説明しました。

Golang&Echoの勉強を始められる方の参考、
第一歩になれば嬉しいです!

また、私も勉強が進んできたら、
他にもGolang関連の記事を書くかもしれません。
その際は、ぜひご覧ください!

ではでは〜!

コメント

タイトルとURLをコピーしました