accounts/Dockerfile

42 lines
995 B
Docker
Raw Permalink Normal View History

# ------------------------------
# Stage 1 — Build
# ------------------------------
2026-01-23 23:34:46 +08:00
FROM golang:1.25.1 AS builder
ARG GOPROXY
ENV GOPROXY=${GOPROXY}
WORKDIR /src
# 先复制 go.mod / go.sum使 Docker 构建缓存层可复用
COPY go.mod go.sum ./
RUN go mod download
# 再复制源码
COPY . .
# 编译
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o account ./cmd/accountsvc/main.go
# ------------------------------
# Stage 2 — Runtime
# ------------------------------
FROM ubuntu:24.04
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates stunnel4 gettext-base netcat-openbsd curl \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /var/run/stunnel \
&& chown -R nobody:nogroup /var/run/stunnel
COPY --from=builder /src/account /usr/local/bin/account
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY config /app/config
RUN chmod +x /usr/local/bin/entrypoint.sh
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]