mira-app-server 1.0.8 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +91 -16
- package/Dockerfile +48 -11
- package/Dockerfile.optimized +80 -0
- package/docker-build.sh +37 -37
- package/package.json +2 -2
package/.dockerignore
CHANGED
|
@@ -1,16 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*.
|
|
1
|
+
# Node modules 和包管理器文件
|
|
2
|
+
node_modules
|
|
3
|
+
npm-debug.log*
|
|
4
|
+
yarn-debug.log*
|
|
5
|
+
yarn-error.log*
|
|
6
|
+
.npm
|
|
7
|
+
.yarn-integrity
|
|
8
|
+
|
|
9
|
+
# 构建输出(会在容器内重新构建)
|
|
10
|
+
dist
|
|
11
|
+
build
|
|
12
|
+
|
|
13
|
+
# Docker 相关文件
|
|
14
|
+
Dockerfile*
|
|
15
|
+
.dockerignore
|
|
16
|
+
docker-build*.sh
|
|
17
|
+
docker-build*.bat
|
|
18
|
+
*.tar
|
|
19
|
+
|
|
20
|
+
# 测试相关
|
|
21
|
+
test
|
|
22
|
+
coverage
|
|
23
|
+
.nyc_output
|
|
24
|
+
|
|
25
|
+
# 开发工具配置
|
|
26
|
+
.vscode
|
|
27
|
+
.idea
|
|
28
|
+
*.swp
|
|
29
|
+
*.swo
|
|
30
|
+
*~
|
|
31
|
+
|
|
32
|
+
# Git相关
|
|
33
|
+
.git
|
|
34
|
+
.gitignore
|
|
35
|
+
.gitattributes
|
|
36
|
+
|
|
37
|
+
# 环境配置
|
|
38
|
+
.env
|
|
39
|
+
.env.local
|
|
40
|
+
.env.*.local
|
|
41
|
+
|
|
42
|
+
# 日志文件
|
|
43
|
+
logs
|
|
44
|
+
*.log
|
|
45
|
+
|
|
46
|
+
# 临时文件
|
|
47
|
+
.tmp
|
|
48
|
+
.temp
|
|
49
|
+
temp
|
|
50
|
+
*.tmp
|
|
51
|
+
|
|
52
|
+
# OS生成的文件
|
|
53
|
+
.DS_Store
|
|
54
|
+
Thumbs.db
|
|
55
|
+
|
|
56
|
+
# 文档
|
|
57
|
+
README.md
|
|
58
|
+
*.md
|
|
59
|
+
|
|
60
|
+
# 其他不需要的文件
|
|
61
|
+
*.bat
|
|
62
|
+
*.ps1
|
|
63
|
+
.DS_Store?
|
|
64
|
+
._*
|
|
65
|
+
.Spotlight-V100
|
|
66
|
+
.Trashes
|
|
67
|
+
ehthumbs.db
|
|
68
|
+
Thumbs.db
|
|
69
|
+
|
|
70
|
+
# Docker相关
|
|
71
|
+
Dockerfile*
|
|
72
|
+
docker-compose*
|
|
73
|
+
.dockerignore
|
|
74
|
+
*.tar
|
|
75
|
+
|
|
76
|
+
# 数据库文件
|
|
77
|
+
*.db
|
|
78
|
+
*.sqlite
|
|
79
|
+
|
|
80
|
+
# 文档
|
|
81
|
+
*.md
|
|
82
|
+
README*
|
|
83
|
+
|
|
84
|
+
# 脚本文件
|
|
85
|
+
*.bat
|
|
86
|
+
*.sh
|
|
87
|
+
|
|
88
|
+
# 其他项目目录(如果不需要)
|
|
89
|
+
tools
|
|
90
|
+
data
|
|
91
|
+
plugins
|
package/Dockerfile
CHANGED
|
@@ -1,38 +1,75 @@
|
|
|
1
1
|
# 使用Node.js官方镜像作为基础
|
|
2
2
|
FROM node:20-alpine
|
|
3
3
|
|
|
4
|
-
#
|
|
4
|
+
# 安装构建依赖和 FFmpeg(用于编译native modules如sqlite3)
|
|
5
5
|
RUN apk add --no-cache \
|
|
6
6
|
python3 \
|
|
7
7
|
py3-setuptools \
|
|
8
8
|
make \
|
|
9
9
|
g++ \
|
|
10
10
|
sqlite \
|
|
11
|
-
sqlite-dev
|
|
11
|
+
sqlite-dev \
|
|
12
|
+
ffmpeg \
|
|
13
|
+
ffmpeg-dev
|
|
12
14
|
|
|
13
15
|
# 创建工作目录
|
|
14
16
|
WORKDIR /app
|
|
15
17
|
|
|
16
|
-
#
|
|
17
|
-
COPY package*.json ./
|
|
18
|
+
# 首先复制根目录的 package.json 和相关配置文件
|
|
19
|
+
COPY packages/package*.json ./packages/
|
|
20
|
+
COPY packages/mira-server/package*.json ./packages/mira-server/
|
|
21
|
+
COPY packages/mira-core/package*.json ./packages/mira-core/
|
|
22
|
+
COPY packages/mira-storage-sqlite/package*.json ./packages/mira-storage-sqlite/
|
|
18
23
|
|
|
19
|
-
#
|
|
20
|
-
COPY .
|
|
24
|
+
# 复制 tsconfig 和其他配置文件
|
|
25
|
+
COPY tsconfig.json ./
|
|
26
|
+
COPY packages/mira-server/tsconfig.json ./packages/mira-server/
|
|
27
|
+
COPY packages/mira-core/tsconfig.json ./packages/mira-core/
|
|
28
|
+
COPY packages/mira-storage-sqlite/tsconfig.json ./packages/mira-storage-sqlite/
|
|
29
|
+
|
|
30
|
+
# 复制源代码
|
|
31
|
+
COPY packages/mira-core/src ./packages/mira-core/src
|
|
32
|
+
COPY packages/mira-server/src ./packages/mira-server/src
|
|
33
|
+
COPY packages/mira-storage-sqlite/src ./packages/mira-storage-sqlite/src
|
|
34
|
+
|
|
35
|
+
# 复制插件目录(如果存在)
|
|
36
|
+
COPY plugins ./plugins
|
|
21
37
|
|
|
22
38
|
# 设置环境变量修复distutils问题并安装依赖
|
|
23
39
|
ENV SETUPTOOLS_USE_DISTUTILS=stdlib
|
|
40
|
+
ENV FFMPEG_PATH=/usr/bin/ffmpeg
|
|
41
|
+
ENV FFPROBE_PATH=/usr/bin/ffprobe
|
|
24
42
|
|
|
25
43
|
# 清理现有的node_modules和package-lock.json(如果存在)
|
|
26
|
-
RUN rm -rf node_modules package-lock.json
|
|
44
|
+
RUN rm -rf packages/*/node_modules packages/*/package-lock.json
|
|
45
|
+
|
|
46
|
+
# 先安装根目录的依赖
|
|
47
|
+
WORKDIR /app/packages
|
|
48
|
+
RUN npm install
|
|
27
49
|
|
|
28
|
-
#
|
|
50
|
+
# 安装并构建 mira-core
|
|
51
|
+
WORKDIR /app/packages/mira-core
|
|
29
52
|
RUN npm install
|
|
53
|
+
RUN npm run build
|
|
30
54
|
|
|
31
|
-
#
|
|
55
|
+
# 安装并构建 mira-storage-sqlite
|
|
56
|
+
WORKDIR /app/packages/mira-storage-sqlite
|
|
57
|
+
RUN npm install
|
|
32
58
|
RUN npm run build
|
|
33
59
|
|
|
34
|
-
#
|
|
35
|
-
|
|
60
|
+
# 安装并构建 mira-server
|
|
61
|
+
WORKDIR /app/packages/mira-server
|
|
62
|
+
RUN npm install
|
|
63
|
+
RUN npm run build
|
|
64
|
+
|
|
65
|
+
# 验证 FFmpeg 安装
|
|
66
|
+
RUN ffmpeg -version && ffprobe -version
|
|
67
|
+
|
|
68
|
+
# 清理构建依赖以减小镜像大小(保留 ffmpeg)
|
|
69
|
+
RUN apk del python3 make g++ ffmpeg-dev
|
|
70
|
+
|
|
71
|
+
# 设置工作目录为 mira-server
|
|
72
|
+
WORKDIR /app/packages/mira-server
|
|
36
73
|
|
|
37
74
|
# 暴露端口
|
|
38
75
|
EXPOSE 3000
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# 多阶段构建的改进版Dockerfile
|
|
2
|
+
FROM node:20-alpine as builder
|
|
3
|
+
|
|
4
|
+
# 安装构建依赖
|
|
5
|
+
RUN apk add --no-cache \
|
|
6
|
+
python3 \
|
|
7
|
+
py3-setuptools \
|
|
8
|
+
make \
|
|
9
|
+
g++
|
|
10
|
+
|
|
11
|
+
# 设置工作目录
|
|
12
|
+
WORKDIR /app
|
|
13
|
+
|
|
14
|
+
# 复制根目录的依赖文件
|
|
15
|
+
COPY package*.json ./
|
|
16
|
+
COPY packages/package.json ./packages/
|
|
17
|
+
COPY packages/mira-core/package*.json ./packages/mira-core/
|
|
18
|
+
COPY packages/mira-server/package*.json ./packages/mira-server/
|
|
19
|
+
COPY packages/mira-storage-sqlite/package*.json ./packages/mira-storage-sqlite/
|
|
20
|
+
|
|
21
|
+
# 复制依赖切换脚本
|
|
22
|
+
COPY dependency-*.json ./
|
|
23
|
+
COPY switch-dependencies.js ./
|
|
24
|
+
|
|
25
|
+
# 复制源代码
|
|
26
|
+
COPY packages/mira-core/src ./packages/mira-core/src
|
|
27
|
+
COPY packages/mira-core/tsconfig.json ./packages/mira-core/
|
|
28
|
+
COPY packages/mira-server/src ./packages/mira-server/src
|
|
29
|
+
COPY packages/mira-server/tsconfig.json ./packages/mira-server/
|
|
30
|
+
COPY packages/mira-storage-sqlite/src ./packages/mira-storage-sqlite/src
|
|
31
|
+
COPY packages/mira-storage-sqlite/tsconfig.json ./packages/mira-storage-sqlite/
|
|
32
|
+
COPY tsconfig.json ./
|
|
33
|
+
|
|
34
|
+
# 安装所有依赖并构建
|
|
35
|
+
RUN cd packages && npm install
|
|
36
|
+
RUN cd packages && npm run build:core
|
|
37
|
+
RUN cd packages && npm run build:storage
|
|
38
|
+
RUN cd packages && npm run build:server
|
|
39
|
+
|
|
40
|
+
# 生产阶段
|
|
41
|
+
FROM node:20-alpine
|
|
42
|
+
|
|
43
|
+
# 安装运行时依赖
|
|
44
|
+
RUN apk add --no-cache \
|
|
45
|
+
sqlite \
|
|
46
|
+
ffmpeg
|
|
47
|
+
|
|
48
|
+
# 设置环境变量
|
|
49
|
+
ENV SETUPTOOLS_USE_DISTUTILS=stdlib
|
|
50
|
+
ENV FFMPEG_PATH=/usr/bin/ffmpeg
|
|
51
|
+
ENV FFPROBE_PATH=/usr/bin/ffprobe
|
|
52
|
+
|
|
53
|
+
# 创建应用用户
|
|
54
|
+
RUN addgroup -g 1001 -S nodejs
|
|
55
|
+
RUN adduser -S nodejs -u 1001
|
|
56
|
+
|
|
57
|
+
# 设置工作目录
|
|
58
|
+
WORKDIR /app
|
|
59
|
+
|
|
60
|
+
# 复制构建产物和运行时需要的文件
|
|
61
|
+
COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/dist ./dist
|
|
62
|
+
COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/package.json ./package.json
|
|
63
|
+
COPY --from=builder --chown=nodejs:nodejs /app/packages/mira-server/node_modules ./node_modules
|
|
64
|
+
|
|
65
|
+
# 验证 FFmpeg 安装
|
|
66
|
+
RUN ffmpeg -version
|
|
67
|
+
|
|
68
|
+
# 切换到非root用户
|
|
69
|
+
USER nodejs
|
|
70
|
+
|
|
71
|
+
# 暴露端口
|
|
72
|
+
EXPOSE 3000
|
|
73
|
+
EXPOSE 8081
|
|
74
|
+
|
|
75
|
+
# 健康检查
|
|
76
|
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
77
|
+
CMD node -e "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) }).on('error', () => process.exit(1))"
|
|
78
|
+
|
|
79
|
+
# 启动命令
|
|
80
|
+
CMD ["node", "dist/index.js"]
|
package/docker-build.sh
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# Docker 构建脚本
|
|
4
|
-
# 该脚本将处理插件依赖并构建 Docker 镜像
|
|
5
|
-
|
|
6
|
-
echo "开始构建 Docker 镜像..."
|
|
7
|
-
|
|
8
|
-
# 清理之前的构建
|
|
9
|
-
echo "清理之前的构建..."
|
|
10
|
-
docker rmi mira_server:latest 2>/dev/null || true
|
|
11
|
-
|
|
12
|
-
# 构建 Docker 镜像
|
|
13
|
-
echo "构建 Docker 镜像..."
|
|
14
|
-
docker build -t mira_server:latest .
|
|
15
|
-
|
|
16
|
-
if [ $? -eq 0 ]; then
|
|
17
|
-
echo "Docker 镜像构建成功!"
|
|
18
|
-
echo "保存 Docker 镜像到 mira_server.tar..."
|
|
19
|
-
docker save -o mira_server.tar mira_server:latest
|
|
20
|
-
echo "Docker 镜像已保存到 mira_server.tar"
|
|
21
|
-
read -p "是否启动 Docker 容器?(y/n): " start_container
|
|
22
|
-
if [[ "$start_container" =~ ^[Yy]$ ]]; then
|
|
23
|
-
echo "启动 Docker 容器..."
|
|
24
|
-
docker run -d \
|
|
25
|
-
-p 3000:3000 \
|
|
26
|
-
-p 8081:8081 \
|
|
27
|
-
-v /volume1/文件共享:/library \
|
|
28
|
-
--restart=always \
|
|
29
|
-
--name mira_server \
|
|
30
|
-
mira_server
|
|
31
|
-
else
|
|
32
|
-
echo "已跳过启动 Docker 容器。"
|
|
33
|
-
fi
|
|
34
|
-
else
|
|
35
|
-
echo "Docker 镜像构建失败!"
|
|
36
|
-
exit 1
|
|
37
|
-
fi
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Docker 构建脚本
|
|
4
|
+
# 该脚本将处理插件依赖并构建 Docker 镜像
|
|
5
|
+
|
|
6
|
+
echo "开始构建 Docker 镜像..."
|
|
7
|
+
|
|
8
|
+
# 清理之前的构建
|
|
9
|
+
echo "清理之前的构建..."
|
|
10
|
+
docker rmi mira_server:latest 2>/dev/null || true
|
|
11
|
+
|
|
12
|
+
# 构建 Docker 镜像
|
|
13
|
+
echo "构建 Docker 镜像..."
|
|
14
|
+
docker build -t mira_server:latest .
|
|
15
|
+
|
|
16
|
+
if [ $? -eq 0 ]; then
|
|
17
|
+
echo "Docker 镜像构建成功!"
|
|
18
|
+
echo "保存 Docker 镜像到 mira_server.tar..."
|
|
19
|
+
docker save -o mira_server.tar mira_server:latest
|
|
20
|
+
echo "Docker 镜像已保存到 mira_server.tar"
|
|
21
|
+
read -p "是否启动 Docker 容器?(y/n): " start_container
|
|
22
|
+
if [[ "$start_container" =~ ^[Yy]$ ]]; then
|
|
23
|
+
echo "启动 Docker 容器..."
|
|
24
|
+
docker run -d \
|
|
25
|
+
-p 3000:3000 \
|
|
26
|
+
-p 8081:8081 \
|
|
27
|
+
-v /volume1/文件共享:/library \
|
|
28
|
+
--restart=always \
|
|
29
|
+
--name mira_server \
|
|
30
|
+
mira_server
|
|
31
|
+
else
|
|
32
|
+
echo "已跳过启动 Docker 容器。"
|
|
33
|
+
fi
|
|
34
|
+
else
|
|
35
|
+
echo "Docker 镜像构建失败!"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mira-app-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Mira Server - standalone server application using mira-core",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,6 +30,6 @@
|
|
|
30
30
|
"typescript": "^5.3.3"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"mira-app-core": "
|
|
33
|
+
"mira-app-core": "file://Users/Zhuanz/mira_typescript/packages/mira-core/"
|
|
34
34
|
}
|
|
35
35
|
}
|