Docker新手练习

118 阅读1分钟

任务

window平台写一个http服务,用docker打包镜像并运行。 使用了gin库。

样例代码

func main() {
   r := gin.Default()
   r.GET("/hello", func(c *gin.Context) {
      c.String(http.StatusOK, "hello world")
   })
   r.Run(":8080")
}

编写Dockerfile

FROM golang:1.18-alpine as builder
ADD . /app
WORKDIR /app
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.io,direct
RUN go mod download
RUN go build -o app .
EXPOSE 8080
FROM alpine
RUN mkdir /app
COPY --from=builder /app/app /app
WORKDIR /app
CMD ["./app"]

编写Makefile脚本

image:
   docker build --tag gin:1.0.0 .
   docker run -d --name gin_server -p 8080:8080 gin:1.0.0
rm:
   docker stop gin_server
   docker rm gin_server
   docker rmi gin:1.0.0