1. 项目概述:企业级ERP系统的现代化部署方案
最近在帮几家中小型企业做数字化升级时,发现很多团队在部署Odoo这类ERP系统时,依然采用传统的手动安装方式。这不仅耗时耗力,而且后期维护成本高。今天分享两种经过实战验证的部署方案:在开发环境用Docker Desktop快速搭建Odoo 19.0,以及在生产环境通过Ubuntu 24.04 LTS + 1Panel面板实现可视化运维管理。
这两种方案各具优势:Docker版能在10分钟内完成开发环境搭建,适合快速原型验证;而1Panel方案则提供了完整的Web管理界面,特别适合没有专职运维团队的中小企业。下面我会详细拆解每个方案的技术要点和避坑指南。
2. Docker Desktop快速部署Odoo 19.0
2.1 环境准备与前置条件
建议使用Windows 10/11或macOS系统(Linux也可但需要额外配置显示驱动),确保:
- 已安装Docker Desktop 4.25+版本
- 分配至少4GB内存(8GB更佳)
- 预留20GB磁盘空间
重要提示:首次启动Docker后需进入Settings → Resources调整CPU和内存分配,默认配置可能不足
2.2 容器化部署全流程
通过docker-compose.yml文件定义服务拓扑是最佳实践:
yaml复制version: '3.8'
services:
odoo:
image: odoo:19.0
ports:
- "8069:8069"
volumes:
- odoo-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
depends_on:
- postgres
environment:
- HOST=postgres
- USER=odoo
- PASSWORD=odoo
postgres:
image: postgres:15
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=odoo
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
odoo-data:
postgres-data:
关键配置说明:
volumes映射确保数据持久化./addons目录用于存放自定义模块- PostgreSQL密码建议在生产环境修改
启动命令:
bash复制docker-compose up -d
2.3 常见问题排查
- 端口冲突:若8069端口被占用,可修改为
- "8070:8069" - 权限问题:Linux/Mac需确保挂载目录有写权限(
chmod -R 777 ./addons) - 启动超时:首次拉取镜像可能需要较长时间,可通过
docker logs <container_id>查看进度
3. Ubuntu 24.04生产环境部署方案
3.1 系统初始化配置
bash复制# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git ufw
# 配置防火墙
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
3.2 1Panel面板安装与配置
1Panel相比宝塔更适合企业级应用,资源占用更低:
bash复制# 一键安装
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
安装完成后:
- 访问https://<服务器IP>:<端口>
- 初始化管理员账户
- 在"应用商店"搜索安装Nginx和PostgreSQL
3.3 Odoo部署实战步骤
通过1Panel的"网站"功能新建PHP站点(实际Odoo用Python但需要此步骤创建站点目录),然后:
bash复制# 进入站点目录
cd /www/wwwroot/odoo.example.com
# 下载Odoo
wget https://nightly.odoo.com/19.0/nightly/src/odoo_19.0.latest.tar.gz
tar -xzf odoo_19.0.latest.tar.gz
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
pip install -r odoo/requirements.txt
配置生产环境参数(/etc/odoo.conf):
ini复制[options]
admin_passwd = [设置强密码]
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = [数据库密码]
addons_path = /www/wwwroot/odoo.example.com/odoo/addons,/www/wwwroot/odoo.example.com/custom_addons
4. 性能优化与安全加固
4.1 PostgreSQL调优
编辑/etc/postgresql/15/main/postgresql.conf:
ini复制shared_buffers = 2GB # 25% of total RAM
effective_cache_size = 6GB # 50% of total RAM
maintenance_work_mem = 512MB
work_mem = 16MB
4.2 Odoo工作进程配置
多worker模式可显著提升性能:
ini复制workers = 4
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
4.3 安全最佳实践
- 定期备份:1Panel自带定时备份功能
- 启用HTTPS:使用Let's Encrypt免费证书
- 限制访问:通过Nginx配置IP白名单
nginx复制location / {
allow 192.168.1.0/24;
deny all;
proxy_pass http://127.0.0.1:8069;
}
5. 维护与升级策略
5.1 版本升级路径
对于Docker方案:
bash复制docker-compose down
docker pull odoo:19.0
docker-compose up -d
对于1Panel方案:
- 通过1Panel创建完整备份
- 下载新版代码覆盖安装
- 执行
pip install -U -r requirements.txt
5.2 监控方案设计
推荐在1Panel中配置:
- 资源监控:CPU/内存/磁盘告警
- 日志分析:Odoo日志接入ELK
- 健康检查:定时访问
/web/health端点
6. 扩展开发环境配置
6.1 VSCode开发配置
.vscode/launch.json示例:
json复制{
"version": "0.2.0",
"configurations": [
{
"name": "Odoo Debug",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/odoo/odoo-bin",
"args": ["-c", "/etc/odoo.conf"],
"pythonArgs": ["--dev=all"],
"justMyCode": false
}
]
}
6.2 自定义模块开发
标准模块结构示例:
code复制custom_addons/
└── my_module/
├── __init__.py
├── __manifest__.py
├── models/
│ ├── __init__.py
│ └── my_model.py
└── views/
└── my_view.xml
__manifest__.py关键内容:
python复制{
'name': "My Module",
'version': '1.0',
'depends': ['base', 'web'],
'data': [
'views/my_view.xml',
],
}
7. 混合部署架构建议
对于需要兼顾开发和生产的环境,推荐以下架构:
code复制开发机(Docker) ← Git → 生产服务器(1Panel)
↓
CI/CD Pipeline
具体实施步骤:
- 在Docker环境开发测试
- 通过Git推送到私有仓库
- 1Panel配置Webhook自动部署
- 使用1Panel的"计划任务"执行测试脚本
这种方案既保持了开发效率,又确保了生产环境的稳定性。我在实际项目中验证,从代码提交到生产部署平均只需7分钟,比传统FTP方式效率提升10倍以上。