ARG DOCKER_REGISTRY=docker.m.daocloud.io ARG ALPINE_MIRROR=mirrors.aliyun.com ARG GOPROXY=https://goproxy.cn,direct ARG GOSUMDB=sum.golang.google.cn FROM ${DOCKER_REGISTRY}/library/golang:1.26-alpine AS build ARG ALPINE_MIRROR ARG GOPROXY ARG GOSUMDB ARG TARGETOS=linux ARG TARGETARCH=amd64 ENV GOPROXY=${GOPROXY} ENV GOSUMDB=${GOSUMDB} WORKDIR /src RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_MIRROR}/g" /etc/apk/repositories \ && apk add --no-cache ca-certificates COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /out/smilefirst ./cmd/smilefirst FROM ${DOCKER_REGISTRY}/library/alpine:3.22 ARG ALPINE_MIRROR WORKDIR /app RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_MIRROR}/g" /etc/apk/repositories \ && apk add --no-cache ca-certificates tzdata COPY --from=build /out/smilefirst /app/smilefirst COPY migrations /app/migrations ENV GUAHAO_ADDR=:9800 ENV GUAHAO_DB_PATH=/data/smilefirst.db ENV GUAHAO_UPLOAD_DIR=/data/uploads ENV GUAHAO_SCHEMA_PATH=/app/migrations/schema.sql ENV GUAHAO_LOG_LEVEL=info ENV TZ=Asia/Shanghai VOLUME ["/data"] EXPOSE 9800 CMD ["/app/smilefirst", "serve"]