不需要源码,使用静态编译二进制即可。
在打包服务器(例如Jenkins)上,git clone or go get从本地仓库获得源码,然后静态编译成二进制或镜像,然后推送到仓库(或服务器上)即可,更新剩下操作就是重启服务等操作了。
go静态编译百度即可,我自己使用的部署镜像就16M大小,例如dockerfile
# 编译website
FROM golang:1.13.0-alpine3.10 AS builder
RUN apk add git && \
go version && go env && \
GO111MODULE=off go get -v github.com/eudore/website && \
mkdir website && cp -r /go/src/github.com/eudore/website/static website/static && \
GO111MODULE=off CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags "-s -w" -o website/server github.com/eudore/website
# 创建运行镜像
FROM alpine:latest
COPY --from=builder /go/website /go/src/github.com/eudore/website/config/config.json /
CMD ["/server", "--enable.+=docker"]