GO言語の開発環境をDocker Composeで構築してブラウザからアクセスするまでの手順です。
DockerとDocker Composeのインストールは以下を参考にしてください。
ディレクトリ構成
Dockerfileやdocker-compose.ymlなどのディレクトリ構成です。
# ツリー表示
$ pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'
/share/docker/golang
|--docker-compose.yml
|--Dockerfile
|--main.go
Dockerfile
FROM golang:1.14
WORKDIR /go
ADD . /go
CMD ["go", "run", "main.go"]
docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- "18888:18888" # "ホストのポート:コンテナのポート"
container_name: golang # コンテナ名を指定(任意の名前)
main.go
ブラウザからアクセス可能なgoプログラムを作成します。
package main
import(
"fmt"
"log"
"net/http"
"net/http/httputil"
)
func handler(w http.ResponseWriter, r *http.Request) {
dump, err := httputil.DumpRequest(r, true)
if err != nil {
http.Error(w, fmt.Sprint(err), http.StatusInternalServerError)
return
}
fmt.Println(string(dump))
fmt.Fprintf(w, "<html><body>hello</body></html>\n")
}
func main() {
var httpServer http.Server
http.HandleFunc("/", handler)
log.Println("start http listening :18888")
httpServer.Addr = ":18888"
log.Println(httpServer.ListenAndServe())
}
Dockerコンテナの起動
# コンテナの起動
$ docker-compose up
ブラウザからアクセス
アドレスhttp://ホストOSのIP:18888/にアクセスする。
無事にgo言語の開発環境を構築することができました。
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。