diff --git a/Dockerfile b/Dockerfile index df35523..f0ce30e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,9 +21,16 @@ RUN npx prisma generate # 复制源代码 COPY . . -# 构建 +# 设置生产环境变量(与运行阶段一致) +ENV DATABASE_URL="file:/app/data/student.db" +RUN mkdir -p /app/data && chmod 777 /app/data + +# 构建 Nuxt RUN npm run build +# 在构建阶段创建数据库 +RUN npx prisma db push + # 生产镜像 FROM node:20-alpine @@ -35,6 +42,9 @@ RUN apk add --no-cache openssl # 创建数据目录 RUN mkdir -p /app/data && chmod 777 /app/data +# 设置数据库环境变量 +ENV DATABASE_URL="file:/app/data/student.db" + # 复制 node_modules COPY --from=builder /app/node_modules ./node_modules @@ -45,15 +55,14 @@ COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma # 复制 package.json COPY --from=builder /app/package.json ./ -# 设置数据库环境变量并初始化数据库 -ENV DATABASE_URL="file:/app/data/student.db" -RUN npx prisma db push - # 复制构建产物 COPY --from=builder /app/.output ./ +# 复制构建阶段创建的数据库文件 +COPY --from=builder /app/data/student.db /app/data/student.db + # 暴露端口 EXPOSE 3000 # 启动应用 -CMD ["node", "server/index.mjs"] \ No newline at end of file +CMD ["node", "server/index.mjs"]