ZBLOG

# 该镜像用于编译web程序 FROM golang:alpine AS builder ENV CGO_ENABLED=0 \ GOOS=linux \ GOPROXY="https://goproxy.cn,direct" \ GO111MODULE=on WORKDIR /build COPY . . WORKDIR /build/golang_web RUN go mod download RUN go build -ldflags

这个 Dockerfile 文件中使用了 Golang 的编译器进行构建,最终生成的是一个可执行文件 blog_web,而不是镜像。Docker 镜像本质上是一个包含了程序、库和其他依赖项的虚拟环境,因此需要将可执行文件以及相关的配置文件等打包到镜像中。

在该 Dockerfile 中,先基于 golang:alpine 镜像创建一个名为 builder 的阶段,并设置 CGO_ENABLED、GOOS、GOPROXY 等环境变量,然后将当前目录下所有内容都复制到 /build 目录下。接着进入 /build/golang_web 目录,下载依赖并编译成 blog_web 可执行文件。

在第二个 FROM 语句中再次创建一个新的阶段 alpine,并设置 MAINTAINER、TZ 等环境变量。然后将之前编译得到的 blog_web 和配置文件 application.yaml 复制到容器内部的 /app 目录下,并暴露 8080 端口。最后通过 CMD 命令运行 blog_web 可执行文件。

因此,在这个 Dockerfile 中生成的并不是 exe 文件,而是针对 Alpine Linux 操作系统编译好的可执行文件 blog_web。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4978

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?