LoginSignup
1
2

More than 3 years have passed since last update.

DockerでサクッとGolangの環境作ってみた

Last updated at Posted at 2020-05-05

golangの勉強のためにDockerでサクッと開発環境作ってみた。

フォルダ構成
golang_docker_api
-Dockerfile
-main.go

それぞれのファイルの内容は以下参照

Golang+Dockerで環境構築

【Dockerfile】
ローカルのmain.goをコンテナイメージにコピーしてビルド→実行をするDockerfile

Dockerfile
FROM golang:alpine
# フォルダ作成
RUN mkdir /app/
# 作成したフォルダ内にmain.goを配置
COPY . /app/
# 作業場所を/appに設定(main.goがある場所)
WORKDIR /app/
# main.goをbuild
RUN go build -o main . 
CMD ["/app/main"]

【main.go】
localhostにアクセスしたときに「golang api access」を出力するmain.go

main.go
package main

import (
    "fmt"
    "net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "golang api access")
}

func main() {
    http.HandleFunc("/", index)
    http.ListenAndServe(":80", nil)
}

ファイルの作成が終わったら、まずはDockerfileをビルドしてイメージを作成。
cdでDockerfileのあるフォルダまで移動してから以下のコマンドを実行する。

zsh
$docker build ./ -t go_docker_api
Sending build context to Docker daemon  3.072kB
Step 1/6 : FROM golang:alpine
.....
Successfully built 8fc142c5cd0d
Successfully tagged go_docker_api:latest

最後に「Successfully」が出ていれば成功。

次に作成したイメージを実行する

zsh
$docker run --name go_docker -d -p 80:80 go_docker_api 
269cf535b7d0030e6058056559b9eb8334e966131eac9b077d21072615c662fa

なんか文字列が出てくる。
以下のコマンドで起動を起動確認する。

zsh
$docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
269cf535b7d0        go_docker_api       "/app/main"         13 minutes ago      Up 13 minutes       0.0.0.0:80->80/tcp   go_docker

これが出れば実行成功。
Webブラウザを開いてlocalhostにアクセスする。
BB4824D2-7F8E-4ED7-B36D-9EFF64CA1F3A.jpeg
golangが動いていることを確認できました!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2