Files
iotlcm/server/Dockerfile
T
MiFaZhan a882ae65c5 fix: Dockerfile 基础镜像改为公共仓库,移除私有仓库依赖
- FROM 改为 ${BASE_REGISTRY}/<镜像>:<版本>,默认 docker.io/library
  内网可传 --build-arg BASE_REGISTRY=<自有仓库>/library 覆盖
- iotlcm-app: 删除 ENV GOPRIVATE=git.xiujie.cn
- iotlcm-app: VITE_MP_SERVER_BASEURL 默认值由内网域名改为 /app/api/v1
- Alpine 基础镜像固定到 3.23(原来未锁版本)
2026-10-29 13:33:24 +08:00

48 lines
1.4 KiB
Docker

# Build context: server/
# Example:
# docker build -f Dockerfile -t iotlcm-app-server:latest .
# 基础镜像仓库。默认使用 Docker Hub 官方镜像;内网环境可替换为自己的仓库:
# docker build --build-arg BASE_REGISTRY=harbor.example.com/library ...
ARG BASE_REGISTRY=docker.io/library
FROM ${BASE_REGISTRY}/golang:1.25-alpine AS builder
ENV GIT_TERMINAL_PROMPT=0
ENV GOPROXY=https://goproxy.cn,direct
ENV TZ=Asia/Shanghai
WORKDIR /src/server
COPY go.mod go.sum ./
RUN go mod download
COPY . ./
ARG BuildVersion=0.0.0
ARG BuildTime=
ARG CommitID=
RUN go build -v -o /out/iotlcm-app-server \
-ldflags "-X main.BuildVersion=${BuildVersion} -X main.CommitID=${CommitID} -X main.BuildTime=${BuildTime}" \
.
FROM ${BASE_REGISTRY}/alpine:3.23 AS runtime
ENV TZ=Asia/Shanghai
ENV APP_UPLOAD_DIR=/data/app/iotlcmadmin-web-svc/upload
WORKDIR /app
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
COPY --from=builder /out/iotlcm-app-server /app/iotlcm-app-server
COPY resource/public /app/resource/public
# The environment-specific config is mounted read-only by Docker Compose at runtime.
RUN mkdir -p "${APP_UPLOAD_DIR}" /app/config /app/resource/log/server /app/resource/log/server/sql /app/resource/cache /app/resource/certs
EXPOSE 8010
VOLUME ["/data/app/iotlcmadmin-web-svc/upload", "/app/resource/certs"]
CMD ["./iotlcm-app-server"]