1 回答
TA贡献1863条经验 获得超2个赞
您的依赖项可能存储在中GOPATH/src/<import-path>
,您可以使用go get
工具管理它们。
考虑供应商 和工具,如dep或模块
因此,您的依赖项将包含在源代码管理中,并且项目将更加可移植。
您还可以改进创建图像的方式Docker
。
当前的实现使用一个包含整个GO
工具链的容器。代码被复制到该容器内部,容器编译并托管代码。只有稍后才需要生产。
更好的选择是使用 2 个容器:
Go 编译工具
仅托管二进制文件的轻量级容器
# Debian image with the latest version of Go installed
# and a workspace (GOPATH) configured at /go.
FROM golang:1.11 as builder
WORKDIR /go/src/github.com/space/project/
# Copy the local package files to the container's workspace.
ADD . /go/src/github.com/space/project/
# Build the service inside the container.
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM centurylink/ca-certs
EXPOSE 8080
# Copy app
COPY --from=builder /go/src/github.com/space/project/app /
ENTRYPOINT ["/app"]
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报