增加docker编译

This commit is contained in:
2025-07-28 23:33:26 +08:00
parent 12d7765e10
commit 58ed1a2cd9
6 changed files with 175 additions and 0 deletions

100
.dockerignore Normal file
View File

@@ -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

BIN
1ms-helper Executable file

Binary file not shown.

56
Dockerfile Normal file
View File

@@ -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"]

17
nixpacks.toml Normal file
View File

@@ -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" ]

View File

@@ -31,6 +31,7 @@ export default defineNuxtConfig({
} }
}, },
preview: { preview: {
dev:true,
api: 'https://api.nuxt.studio' api: 'https://api.nuxt.studio'
} }
}, },

1
~/.docker/config.json Normal file
View File

@@ -0,0 +1 @@