构建 Go 应用 docker 镜像的十八种姿势
修炼背景 我夜以继日,加班加点开发了一个最简单的 Go Hello world 应用,虽然只是跑了打印一下就退出了,但是老板也要求我上线这个我能写出的唯一应用。 项目结构如下: . ├── go.mod └── hello.go hello.go 代码如下: package main func main() { println("hello world!") } 并且,老板要求用 docker 部署,显得咱们紧跟潮流,高大上一点。。。 第一次尝试 我在拜访了一些武林朋友之后,发现把整个过程丢到 docker 里面去编译一下就好了,一番琢磨之后,我得到了如下 Dockerfile: FROM golang:alpine WORKDIR /build COPY hello.go . RUN go build -o hello hello.go CMD ["./hello"] 构建镜像: $ docker build -t hello:v1 . 搞定,让我们凑近了看看。 docker run -it --rm hello:v1 ls -l /build total 1260 -rwxr-xr...