CADmium容器化:Docker部署指南
你还在为CAD软件复杂的部署流程烦恼吗?本文将带你通过Docker快速部署CADmium,无需繁琐配置,5分钟即可拥有一个功能完整的浏览器端CAD解决方案。读完本文你将学会:Dockerfile编写、容器构建与运行、多阶段构建优化以及常见问题排查。
项目概述
CADmium是一款运行在浏览器中的轻量级CAD(计算机辅助设计)程序,采用Rust作为核心引擎,SvelteKit构建前端界面,完美平衡性能与用户体验。项目结构清晰,主要分为:
- 核心引擎:packages/cadmium/src/ - Rust编写的CAD核心功能库
- Web应用:applications/web/ - SvelteKit前端界面
- 原生应用:applications/tauri/ - Tauri跨平台桌面端
为什么选择Docker部署
传统部署需要配置Node.js、Rust、PNPM等多环境依赖,而Docker容器化具有以下优势:
- 环境一致性:避免"在我电脑上能运行"的问题
- 隔离部署:不干扰主机系统配置
- 快速迁移:一次构建,多环境运行
- 资源优化:比传统虚拟机更轻量
准备工作
环境要求
- Docker Engine 20.10+
- 至少2GB内存
- 网络连接(用于拉取依赖和镜像)
获取代码
git clone https://gitcode.com/GitHub_Trending/cad/CADmium
cd CADmium
Dockerfile编写
项目默认未提供Docker配置,我们创建多阶段构建方案,优化镜像大小:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm && pnpm install
COPY . .
RUN pnpm build
FROM nginx:alpine
COPY --from=builder /app/applications/web/dist /usr/share/nginx/html
COPY applications/web/public /usr/share/nginx/html/public
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
多阶段构建说明:第一阶段(builder)负责编译构建,第二阶段(nginx)仅保留运行时必要文件,使最终镜像体积减少70%以上。
构建与运行容器
构建镜像
docker build -t cadmium:latest .
运行容器
docker run -d -p 8080:80 --name cadmium-instance cadmium:latest
参数说明:
-d:后台运行容器-p 8080:80:将容器80端口映射到主机8080端口--name:指定容器名称
访问应用
打开浏览器访问 http://localhost:8080 即可使用CADmium。首次加载可能需要几秒时间初始化WebGL渲染环境。
目录结构说明
容器内部文件结构:
/usr/share/nginx/html/
├── index.html # 入口文件
├── assets/ # 编译后的静态资源
└── public/ # 静态资源目录
├── cadmium_logo_min.svg # 项目Logo
├── actions/ # 工具栏图标
└── constraints/ # 约束条件图标
核心源代码目录映射:
- 前端组件:applications/web/src/components/
- Rust核心:packages/cadmium/src/
- 构建配置:vite.config.ts
常见问题解决
构建失败
若出现pnpm install失败,检查网络连接或添加镜像源:
RUN npm config set registry https://registry.npmmirror.com && \
pnpm config set registry https://registry.npmmirror.com
访问缓慢
- 确保Nginx配置正确:nginx.conf
- 检查静态资源路径:vite.config.ts中的base配置
功能异常
某些高级功能可能需要浏览器支持WebGL 2.0,可通过three.js检测页面验证支持情况。
部署架构建议
对于生产环境,建议添加以下优化:
- 使用Docker Compose管理多容器
- 配置HTTPS加密(通过Nginx或反向代理)
- 添加健康检查和自动重启策略
- 挂载数据卷持久化用户设计文件
# docker-compose.yml示例
version: '3'
services:
cadmium:
build: .
ports:
- "80:80"
restart: always
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
总结
通过本文,你已掌握CADmium的Docker化部署方案,包括环境准备、镜像构建、容器运行和问题排查。容器化部署不仅简化了安装流程,也为后续的CI/CD和云部署奠定基础。
项目仍在持续开发中,更多功能可关注README.md中的TODO列表。如有部署相关问题,可参考项目中的测试脚本或提交Issue反馈。
提示:定期执行
git pull && docker build -t cadmium:latest .可获取最新功能更新。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



