diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..74f51a2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,69 @@ +# ------------------------------------------------ +# 基础镜像:Node LTS(Debian trixie-slim) +# ------------------------------------------------ +FROM node:lts-trixie-slim + +WORKDIR /usr/src/app + +ENV PNPM_HOME=/pnpm-global +ENV PATH=$PNPM_HOME:$PATH +ENV SHELL=/bin/sh + +# ------------------------------------------------ +# 安装 pnpm 并配置国内源 +# ------------------------------------------------ +RUN npm install -g pnpm && \ + pnpm config set registry https://registry.npmmirror.com + +# 在 Dockerfile 里替换源 +RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian trixie main contrib non-free" > /etc/apt/sources.list && \ + echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security trixie-security main contrib non-free" >> /etc/apt/sources.list && \ + echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian trixie-updates main contrib non-free" >> /etc/apt/sources.list + +# ------------------------------------------------ +# 更新系统工具(最小化依赖) +# ------------------------------------------------ +RUN apt-get update && apt-get install -y --no-install-recommends \ + git curl ca-certificates && \ + rm -rf /var/lib/apt/lists/* + +# ------------------------------------------------ +# 安装运行时核心依赖(支持 SSR + CSR) +# ------------------------------------------------ +RUN pnpm add -g \ + nuxt@latest \ + vue@latest \ + vue-router@latest \ + @vueuse/core \ + @pinia/nuxt \ + pinia-plugin-persistedstate \ + @element-plus/nuxt \ + @element-plus/icons-vue \ + @nuxtjs/tailwindcss \ + @nuxt/image \ + @nuxt/icon \ + @nuxtjs/color-mode \ + @nuxtjs/component-cache \ + axios \ + node-fetch \ + socket.io-client \ + lodash \ + dayjs \ + crypto-js + +# ------------------------------------------------ +# 版本验证 +# ------------------------------------------------ +RUN echo "✅ Node 版本:" && node -v && \ + echo "✅ pnpm 版本:" && pnpm -v && \ + echo "✅ Nuxt 版本:" && pnpm dlx nuxt --version || true + +# ------------------------------------------------ +# 默认端口 +# ------------------------------------------------ +EXPOSE 3000 + +# ------------------------------------------------ +# 启动方式 +# ------------------------------------------------ +CMD ["bash"] diff --git a/README.md b/README.md index 42b2b31..18f4ed1 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,76 @@ -# 基础架构分支 - 全局更新管理 +# Knowai Base 镜像维护文档 ## 分支职责 -负责项目中所有需要全局同步更新的部分,确保各功能分支技术栈一致性。 +负责统一 Nuxt 运行环境与框架生态依赖。 +不包含任何业务代码或配置,仅提供基础依赖环境。 -## 具体负责内容 +## 镜像标签命名规范 +- 格式:`gitea.local.knowai/tobegold574/nuxt-base:主版本号.次版本号.修订号` +- 示例:`gitea.local.knowai/tobegold574/nuxt-base:1.0.0` +- 版本规则: + - 主版本号:不兼容的框架或依赖变更 + - 次版本号:兼容性增强或批量依赖升级 + - 修订号:小幅依赖更新或新增兼容依赖 +- `latest` 标签默认指向当前稳定版本(谨慎更新) -### 1. 配置文件管理 -- `nuxt.config.ts` - Nuxt构建配置、插件配置 -- `tsconfig.json` - TypeScript类型检查规则 -- `package.json` - 核心依赖版本锁定 +## 基础环境 +- Node.js LTS(Debian trixie-slim) +- pnpm(包管理器) +- 系统工具:git、curl、ca-certificates -### 2. 全局类型定义 -- `types/global.d.ts` - 全局接口、类型定义 -- API响应类型规范 -- 业务数据模型定义 +## 全局依赖(长期不变部分) +### 核心框架 +- nuxt@latest +- vue@latest +- vue-router@latest -### 3. 核心工具函数 -- `utils/request.ts` - HTTP请求封装 -- `utils/date.ts` - 日期格式化工具 -- `utils/validate.ts` - 通用验证函数 +### 状态管理 +- @pinia/nuxt +- @pinia/plugin-persistedstate -### 4. 样式系统基础 -- `assets/scss/variables.scss` - 设计系统变量 -- 主题配色方案 -- 响应式断点定义 +### UI组件库 +- @element-plus/nuxt +- @element-plus/icons-vue + +### 样式与构建 +- @nuxtjs/tailwindcss +- @nuxt/image +- @nuxt/icon +- @nuxtjs/color-mode +- @nuxtjs/component-cache + +### 网络请求 +- axios +- node-fetch +- socket.io-client + +### 工具库 +- @vueuse/core +- lodash +- dayjs +- crypto-js + +## 使用方式 +其他分支的 Dockerfile: +```dockerfile +FROM gitea.local.knowai/tobegold574/nuxt-base:1.0.0 +WORKDIR /usr/src/app +# 添加业务代码与依赖 +``` + +### 构建命令 +`docker build -t gitea.local.knowai/tobegold574/knowai-base:1.0.0 .` +`docker push gitea.local.knowai/tobegold574/knowai-base:1.0.0` + +## 镜像分层说明 +根据"知智镜像分层管理"思想,Base层仅包含: +- Node.js 运行环境 +- 核心框架依赖(Vue、Nuxt、Vue Router) +- 基础状态管理(Pinia) +- 基础UI组件库(Element Plus) +- 常用工具库 + +其他依赖(如测试工具、开发工具等)应在各自层中按需添加,避免Base镜像臃肿。 ## 更新记录 @@ -31,5 +78,10 @@ - 创建基础架构分支 - 初始化Nuxt3项目结构 +### 2025-11-4 +- 删除项目代码以及CI pipeline +- 重新构建base镜像1.0.0版本 +- 重新确定该分支职责 + --- -*仅负责全局性更新,业务功能在各功能分支独立开发* \ No newline at end of file +*仅负责全局性依赖更新,业务功能在各功能分支独立开发,构建独立镜像* \ No newline at end of file