您的位置 首页 golang

使用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=
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"]
 

文章来源:智云一二三科技

文章标题:使用docker部署golang服务

文章地址:https://www.zhihuclub.com/99414.shtml

关于作者: 智云科技

热门文章

网站地图