约 232 字
预计阅读 1 分钟
Go Dockerfile 通用配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| FROM golang:alpine AS builder
RUN apk add --no-cache git
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64 \
GOPROXY=https://goproxy.cn \ # 使用国内镜像源,如果要在actions里跑的话就不用
GOPRIVATE=github.com/<org_name> # 私有组织
WORKDIR /build
COPY . .
# 如果要go get私人仓库
RUN git config \
--global \
url."https://<github_name>:<github_access_token>@github.com".insteadOf \
"https://github.com"
RUN go get github.com/<org_or_name>/<repo_name>
# 编译成二进制可执行文件server
RUN go build -o server .
# 创建小镜像
FROM scratch
# 拷贝配置文件
COPY ./configs/server.yml /
# 从builder镜像中把/build/server 拷贝到当前目录
COPY --from=builder /build/server /
# 声明服务端口
EXPOSE 8080
# 启动容器时运行的命令
CMD ["/server", "--config", "/server.yml"]
|