我在Docker上快速配置了一个Golang环境
为了学习Golang,我很快地使用Docker创建了开发环境。
文件夹结构
golang_docker_api
-Dockerfile
-main.go
请参考每个文件的内容。
使用Golang和Docker进行环境配置。
【Dockerfile】
将本地的main.go复制到容器镜像中进行构建和执行的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】
在本地访问时,main.go将输出「golang api access」。
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所在的文件夹,并执行以下命令。
$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”,就表示成功。
请执行接下来创建的图像。
$docker run --name go_docker -d -p 80:80 go_docker_api
269cf535b7d0030e6058056559b9eb8334e966131eac9b077d21072615c662fa
有些字符出现了。
使用以下指令来确认启动。
$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
