使用docker部署golang服务

使用docker部署golang服务

游戏|数码彩彩2024-04-28 7:43:43458A+A-

使用docker部署golang服务

 

Go 的编译结果基本上只依赖libc(传言,第三方库是否依赖那就另当别论了), 所以Docker image 实际可以做的很小

  1. 使用apline 作为docker 的运行环境产生尽可能小的运行环境
  2. 国内使用有很多情况下是不能使用golang官网仓库的,这边需要使用go mod
  3. golang 编译需要一个环境,但是运行的时候并不需要编译的时候的那些go get的东西,所以需要另外建立一个docker image, 这个docker 使用上一个docker的编译结果

解决方法的话就是使用docker 的multi stage build, 具体的docker file 如下

# build
FROM golang:1.12-alpine AS builder
WORKDIR /go/src/App
COPY . .

# set go mod proxy
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io
RUN go build -ldflags "-w -s"

# runtime
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/

# using build result
COPY --from=builder /go/src/app/ .
CMD ["./appname"]
点击这里复制本文地址 版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(https://www.angyang.net.cn)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

昂扬百科 © All Rights Reserved.  渝ICP备2023000803号-3网赚杂谈