Docker与Go:构建高性能的Go应用
# 使用轻量级的Alpine Linux作为基础镜像
FROM alpine:3.12
# 安装Go语言
ENV GO_VERSION 1.15.6
ENV GOROOT /usr/local/go
ENV GOPATH /go
ENV PATH $GOPATH/bin:$GOROOT/bin:$PATH
# 下载并解压Go语言包
RUN wget -q -O go.tgz "https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz" \
&& tar -C /usr/local -xzf go.tgz \
&& rm go.tgz
# 设置工作目录
WORKDIR $GOPATH/src/app
# 复制当前目录下的Go应用源代码到工作目录
COPY . .
# 编译Go应用并构建一个静态链接的可执行文件
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags="-s -w" -o app .
# 设置容器启动时运行的命令
ENTRYPOINT ["/usr/local/bin/app"]
这个Dockerfile演示了如何为Go应用程序创建一个轻量级的Docker镜像。它使用了Alpine Linux作为基础镜像,安装了Go语言环境,并编译了应用程序。最终,镜像仅包含编译好的Go应用,没有多余的文件,因此它具有高性能和较小的体积。
评论已关闭