49 lines
1.1 KiB
Docker
49 lines
1.1 KiB
Docker
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"]
|