Files
urldb/Dockerfile
2025-07-19 09:45:51 +08:00

53 lines
938 B
Docker

# 前端构建阶段
FROM node:20-slim AS frontend-builder
# 安装pnpm
RUN npm install -g pnpm
WORKDIR /app/web
COPY web/package*.json ./
COPY web/pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY web/ ./
RUN pnpm run build
# 前端运行阶段
FROM node:18-alpine AS frontend
RUN npm install -g pnpm
WORKDIR /app
COPY --from=frontend-builder /app/web/.output ./.output
COPY --from=frontend-builder /app/web/package*.json ./
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]
# 后端构建阶段
FROM golang:1.21-alpine AS backend-builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
# 后端运行阶段
FROM alpine:latest AS backend
WORKDIR /root/
# 复制后端二进制文件
COPY --from=backend-builder /app/main .
# 创建uploads目录
RUN mkdir -p uploads
# 暴露端口
EXPOSE 8080
# 运行应用
CMD ["./main"]