- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
53 lines
1.1 KiB
Docker
53 lines
1.1 KiB
Docker
# 简化的Dockerfile,专门解决构建问题
|
||
FROM node:18-alpine AS builder
|
||
|
||
WORKDIR /app
|
||
|
||
# 接收构建参数
|
||
ARG VITE_API_BASE_URL=https://aiedu.ireborn.com.cn/api
|
||
ARG VITE_WS_BASE_URL=wss://aiedu.ireborn.com.cn/ws
|
||
ARG VITE_USE_MOCK_DATA=false
|
||
|
||
# 设置环境变量
|
||
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
|
||
ENV VITE_WS_BASE_URL=$VITE_WS_BASE_URL
|
||
ENV VITE_USE_MOCK_DATA=$VITE_USE_MOCK_DATA
|
||
|
||
# 复制package文件
|
||
COPY package*.json ./
|
||
|
||
# 使用阿里云镜像源
|
||
RUN npm config set registry https://registry.npmmirror.com
|
||
|
||
# 安装依赖(跳过脚本)
|
||
RUN npm install --ignore-scripts
|
||
|
||
# 复制源代码
|
||
COPY . .
|
||
|
||
# 构建应用
|
||
RUN ./node_modules/.bin/vite build
|
||
|
||
# 生产阶段
|
||
FROM nginx:alpine
|
||
|
||
# 安装curl用于健康检查
|
||
RUN apk add --no-cache curl
|
||
|
||
# 复制nginx配置
|
||
COPY docker/nginx.conf /etc/nginx/nginx.conf
|
||
COPY docker/default.conf /etc/nginx/conf.d/default.conf
|
||
|
||
# 复制构建产物
|
||
COPY --from=builder /app/dist /usr/share/nginx/html
|
||
|
||
# 暴露端口
|
||
EXPOSE 80
|
||
|
||
# 健康检查
|
||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||
CMD curl -f http://localhost:80/ || exit 1
|
||
|
||
# 启动nginx
|
||
CMD ["nginx", "-g", "daemon off;"]
|