FROM node:20-alpine AS frontend
WORKDIR /frontend-build
COPY ./frontend .

RUN npm config set registry https://registry.npmmirror.com && npm install -g pnpm --registry=https://registry.npmmirror.com && pnpm i && pnpm build

FROM golang:1.23-alpine AS backend
LABEL anther="github.com/Sakurasan"
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 
RUN apk --no-cache add make cmake upx 
WORKDIR /build
COPY . .
COPY --from=frontend /frontend-build/dist /build/cmd/openteam/dist
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn,direct
CMD [ "go mod tidy","go mod download" ]
RUN make build

FROM alpine:latest AS runner
# 设置alpine 时间为上海时间
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 
RUN apk update && apk --no-cache add tzdata ffmpeg && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone 
# RUN apk update && apk --no-cache add openssl libgcc libstdc++ binutils
WORKDIR /app
COPY --from=backend /build/bin/openteam /app/openteam
ENV GIN_MODE=release
ENV PATH=$PATH:/app
EXPOSE 80 443
ENTRYPOINT ["/app/openteam"]