21 lines
852 B
Docker
21 lines
852 B
Docker
# 需在项目根目录构建: docker build -f server/Dockerfile .
|
||
# 使用 vendor 构建,无需在构建时访问 proxy.golang.org(服务器无外网时也能 build)
|
||
# 国内默认走镜像;海外可 --build-arg REGISTRY_MIRROR= 直连
|
||
ARG REGISTRY_MIRROR=docker.m.daocloud.io/library/
|
||
FROM ${REGISTRY_MIRROR}golang:1.21-alpine AS builder
|
||
WORKDIR /build
|
||
COPY server/ ./
|
||
# 构建参数:脚本可传 GOPROXY,避免 proxy.golang.org 超时;有 vendor 时主要用 -mod=vendor 离线构建
|
||
ARG GOPROXY=https://goproxy.cn,direct
|
||
ENV GOPROXY=$GOPROXY
|
||
RUN CGO_ENABLED=0 go build -mod=vendor -o /app/server .
|
||
|
||
ARG REGISTRY_MIRROR=docker.m.daocloud.io/library/
|
||
FROM ${REGISTRY_MIRROR}alpine:3.19
|
||
WORKDIR /app
|
||
RUN apk add --no-cache ca-certificates tzdata
|
||
ENV TZ=Asia/Shanghai
|
||
COPY --from=builder /app/server .
|
||
EXPOSE 8088
|
||
ENTRYPOINT ["./server"]
|