Golang项目通用Dockerfile编写

golang go path和go mod的区别

go path 所有运行的go文件都要放在gopath文件下, 因为下载下来的包都在这里目录下可以引用
go mod 他有一套引用机制 无论你的go文件在哪里 都可以引用包

go path方式

#编译镜像
FROM  golang:latest  as builder
MAINTAINER  TigerwolfC@***.com.cn
WORKDIR  /go/src
COPY  .  .
RUN  go  build  -o  myapp
 
#产物运行镜像
FROM  alpine:latest
WORKDIR  /root
COPY  --from=builder /go/src/myapp  .
EXPOSE 8088
CMD  [“./myapp”]

go mod方式

FROM golang:latest as build
#ENV GOPROXY https://goproxy.io
ENV GO111MODULE on
WORKDIR /go/cache
ADD go.mod .
ADD go.sum .
RUN go mod download
WORKDIR /go/release
ADD . .
RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -installsuffix cgo -o gin_demo main.go

FROM scratch as prod
COPY --from=build /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY --from=build /go/release/gin_demo /
COPY --from=build /go/release/conf ./conf
CMD ["/gin_demo"]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值