golang项目创建一个Dockerfile文件执行Dockerfile即可编译docker镜像
# FROM ... AS builder : 表示依赖镜像只是使用编译阶段
FROM golang:1.18.1 AS builder

# 编译阶段工作目录,也可以作为全局工作目录
WORKDIR /app

# 把当前目录的所有内容copy到 WORKDIR指定目录中
COPY . .

# 定义go build工作环境,
# 例如GOOS=linux、GOARCH=amd64,
# 这样编译出来的 'main可执行文件' 就只能在linuxamd64架构使用
ARG TARGETOS
ARG TARGETARCH

# 执行go build--mount:在执行build时,会把/go/root/.cache/go-build 临时挂在到容器中
RUN --mount=type=cache,target=/go --mount=type=cache,target=/root/.cache/go-build 
    GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o main

FROM alpine:3.14.0

# 把执行builder阶段结果 /app/main拷贝/app中
COPY --from=builder /app/main /app
# 把配置文件copy/app/tsvbin中
COPY ./tsvbin /app/tsvbin

# 运行main命令启动项目
# /app/main 指向RUN命令go build -o main结果
ENTRYPOINT ["/app/main"]

参开文献https://new.qq.com/rain/a/20220714A014LL00

原文地址:https://blog.csdn.net/Kelvin_hui/article/details/128905194

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36278.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注