diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..65ea80d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,100 @@ + # 依赖目录 +node_modules +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# 构建输出 +.nuxt +.output +dist + +# 环境变量文件 +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# 日志文件 +*.log + +# 运行时数据 +pids +*.pid +*.seed +*.pid.lock + +# 覆盖率目录 +lib-cov +coverage +*.lcov + +# nyc测试覆盖率 +.nyc_output + +# 依赖目录 +node_modules +jspm_packages + +# 可选的npm缓存目录 +.npm + +# 可选的eslint缓存 +.eslintcache + +# 微包 +.pnp +.pnp.js + +# 测试覆盖率 +coverage + +# 生产构建文件 +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +# 调试日志 +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# 本地环境文件 +.env.local +.env.development.local +.env.test.local +.env.production.local + +# 编辑器目录和文件 +.vscode +.idea +*.swp +*.swo +*~ + +# 操作系统生成的文件 +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Git +.git +.gitignore + +# Docker +Dockerfile +.dockerignore + +# 其他 +README.md \ No newline at end of file diff --git a/1ms-helper b/1ms-helper new file mode 100755 index 0000000..aec24f5 Binary files /dev/null and b/1ms-helper differ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9efff44 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,56 @@ +# 使用Node.js 20作为基础镜像 +FROM node:20-alpine AS base + +# 安装pnpm和必要的工具 +RUN npm install -g pnpm + +# 设置工作目录 +WORKDIR /app + +# 复制package.json和pnpm-lock.yaml +COPY package.json pnpm-lock.yaml ./ + +# 安装依赖 +RUN pnpm install --frozen-lockfile + +# 复制源代码 +COPY . . + +# 运行patch-ui-pro.zsh脚本 +RUN chmod +x patch-ui-pro.zsh && ./patch-ui-pro.zsh + +# 构建阶段 +FROM base AS builder + +# 构建应用 +RUN pnpm build + +# 生产阶段 +FROM node:20-alpine AS production + +# 安装pnpm +RUN npm install -g pnpm + +# 设置工作目录 +WORKDIR /app + +# 复制package.json和pnpm-lock.yaml +COPY package.json pnpm-lock.yaml ./ + +# 只安装生产依赖 +RUN pnpm install --frozen-lockfile --prod + +# 从构建阶段复制构建产物 +COPY --from=builder /app/.nuxt ./.nuxt +COPY --from=builder /app/.output ./.output + +# 暴露端口 +EXPOSE 3000 + +# 设置环境变量 +ENV NODE_ENV=production +ENV HOST=0.0.0.0 +ENV PORT=3000 + +# 启动应用 +CMD ["node", ".output/server/index.mjs"] \ No newline at end of file diff --git a/nixpacks.toml b/nixpacks.toml new file mode 100644 index 0000000..8ab5a64 --- /dev/null +++ b/nixpacks.toml @@ -0,0 +1,17 @@ +[phases.setup] +nixPkgs = [ + "nodejs_18", # Nixpacks 已帮你加,这里显性写出来安全 + "sqlite" # 预编译好的 sqlite 库 +] + +[phases.install] +cmds = [ + "sudo apt-get update -y", + "sudo apt-get install -y build-essential python3", # 上 gcc/make/python + "pnpm config set script-shell '/bin/bash'", # 避免 sh -c 失环境 + "pnpm install --frozen-lockfile" +] + +# 可选:编译缓存,构建更快 +[phases.build] +cacheDirectories = [ "node_modules/.cache" ] diff --git a/nuxt.config.ts b/nuxt.config.ts index aa4bf7b..8a32aa5 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -31,6 +31,7 @@ export default defineNuxtConfig({ } }, preview: { + dev:true, api: 'https://api.nuxt.studio' } }, diff --git a/~/.docker/config.json b/~/.docker/config.json new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/~/.docker/config.json @@ -0,0 +1 @@ + \ No newline at end of file