增加docker编译
This commit is contained in:
100
.dockerignore
Normal file
100
.dockerignore
Normal 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
BIN
1ms-helper
Executable file
Binary file not shown.
56
Dockerfile
Normal file
56
Dockerfile
Normal 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
17
nixpacks.toml
Normal 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" ]
|
@@ -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
1
~/.docker/config.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
Reference in New Issue
Block a user