mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 04:17:23 +00:00
Add Docker support.
This commit is contained in:
47
Dockerfile
Normal file
47
Dockerfile
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
# 第一阶段:构建前端
|
||||
FROM node:22-alpine AS frontend-builder
|
||||
|
||||
WORKDIR /app/frontend
|
||||
|
||||
# 复制前端项目文件
|
||||
COPY frontend/package*.json ./
|
||||
RUN npm install
|
||||
|
||||
COPY frontend/ ./
|
||||
RUN npm run build
|
||||
|
||||
# 第二阶段:构建Go应用
|
||||
FROM golang:1.24-alpine AS backend-builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 安装GCC和相关构建工具
|
||||
RUN apk add --no-cache gcc musl-dev
|
||||
|
||||
# 复制Go项目文件
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
|
||||
# 构建Go应用
|
||||
RUN CGO_ENABLED=1 GOOS=linux go build -o main .
|
||||
|
||||
# 第三阶段:最终运行镜像
|
||||
FROM alpine:latest
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 安装必要的运行时依赖
|
||||
RUN apk --no-cache add ca-certificates tzdata
|
||||
|
||||
# 从后端构建阶段复制构建产物
|
||||
COPY --from=backend-builder /app/main /app/
|
||||
COPY --from=frontend-builder /app/frontend/dist /app/static
|
||||
|
||||
# 暴露应用端口(根据您的应用实际端口调整)
|
||||
EXPOSE 3000
|
||||
|
||||
# 运行应用
|
||||
CMD ["./main"]
|
Reference in New Issue
Block a user