前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

EchoサーバーをDocker化する

目的

Echoが起動するDockerイメージを作りたい

下調べ

golangにはDockerのOfficialイメージがあるのでそれを使う

https://hub.docker.com/_/golang/

作業ディレクトリを決める

$ cd ~/myapp

確認用ファイルの準備

ガイドを参考に、server.goファイルを作る

https://echo.labstack.com/guide

package main

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

func main() {
    e := echo.New()
    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, "Hello, World!")
    })
    e.Logger.Fatal(e.Start(":1323"))
}

Dockerfileの編集

Dockerfileを作成する。といっても golang:onbuild 内で 外部ライブラリのインポートなどもしてくれるので最初は1行しか書く必要はない。

FROM golang:onbuild

ビルド

Dockerをビルドする。ここでは echo とタグをつけておく(なんでもよい)。

docker build -t echo .

起動

docker run --rm -p 127.0.0.1:1323:1323 --name echo echo

確認

以下にアクセスして Hello World! と表示されたら成功。

http://localhost:1323/

Golangの公式Dockerファイルがよろしくやってくれるので、 余計なことしないならプロジェクトのディレクトリ上でdockerビルドするだけでいい感じ。 なんというか別にEcho関係ないやん、という結論に。。

/* Responsive: yes */