1. Odoo 19.0与Docker Desktop快速部署实战
1.1 环境准备与前置检查
在开始部署前,我们需要确保系统满足以下条件:
- Windows 10/11 Pro/Enterprise版本(Home版需手动开启Hyper-V)
- BIOS中已启用虚拟化支持(Intel VT-x/AMD-V)
- 至少4GB可用内存(建议8GB以上)
- 50GB可用磁盘空间
验证虚拟化是否开启的方法:
- 打开任务管理器 → 性能选项卡
- 查看"虚拟化"是否显示"已启用"
- 如果显示禁用,需要进入BIOS设置:
- 重启电脑按Del/F2进入BIOS
- 找到Intel Virtualization Technology或AMD SVM选项
- 设置为Enabled
- 保存退出
注意:部分品牌机可能默认关闭虚拟化支持,特别是联想笔记本需要在BIOS中额外关闭"Device Guard"功能
1.2 Docker Desktop安装与配置
- 访问Docker官网下载稳定版安装包
- 双击安装包按向导完成安装
- 首次启动时可能会遇到"Virtualization support not detected"错误,解决方法:
# 以管理员身份运行PowerShell dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart bcdedit /set hypervisorlaunchtype auto - 配置镜像加速(国内用户必需):
- 右键系统托盘Docker图标 → Settings → Docker Engine
- 添加以下镜像源:
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } - 测试安装是否成功:
docker run hello-world
1.3 Odoo 19.0容器部署
使用docker-compose是最佳实践,创建docker-compose.yml文件:
version: '3.1' services: odoo: image: odoo:19.0 container_name: odoo19 ports: - "8069:8069" volumes: - ./odoo-data:/var/lib/odoo - ./odoo-config:/etc/odoo depends_on: - postgres environment: - HOST=postgres - USER=odoo - PASSWORD=odoo postgres: image: postgres:15 container_name: postgres15 environment: - POSTGRES_DB=postgres - POSTGRES_USER=odoo - POSTGRES_PASSWORD=odoo volumes: - ./postgres-data:/var/lib/postgresql/data启动命令:
docker-compose up -d访问地址:http://localhost:8069
1.4 常见问题排查
端口冲突:
- 检查8069端口是否被占用:
netstat -ano | findstr 8069 - 解决方案:修改docker-compose.yml中的端口映射,如"8070:8069"
- 检查8069端口是否被占用:
数据库连接失败:
- 检查Postgres容器日志:
docker logs postgres15 - 确保环境变量匹配,特别是密码一致性
- 检查Postgres容器日志:
性能优化建议:
- 增加Odoo worker数量:
environment: - WORKERS=4 - 启用长轮询:
command: --dev=reload --workers=4 --proxy-mode
- 增加Odoo worker数量:
2. Ubuntu 24.04上1Panel面板安装指南
2.1 系统准备
推荐使用Ubuntu Server 24.04 LTS最小化安装:
# 更新系统 sudo apt update && sudo apt upgrade -y # 安装必要工具 sudo apt install -y curl wget ufw2.2 1Panel安装步骤
官方一键安装脚本:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh安装过程会提示:
- 设置1Panel监听端口(默认10080)
- 设置管理员用户名和密码
- 选择安装目录(默认/opt/1panel)
重要:如果使用云服务器,请提前在安全组放行10080端口
2.3 初始配置
访问面板:
http://服务器IP:10080完成初始化向导:
- 设置时区
- 配置存储路径
- 选择默认容器运行时(推荐docker)
系统优化:
# 启用防火墙 sudo ufw enable sudo ufw allow 10080/tcp sudo ufw allow 22/tcp # 设置swap(内存<4GB时建议) sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
2.4 通过1Panel部署Odoo
- 在1Panel应用商店搜索"Odoo"
- 点击安装,填写配置:
- 端口映射:8069:8069
- 数据库密码
- 持久化存储路径
- 点击确认部署
- 访问方式:
http://服务器IP:8069
2.5 常见问题解决
10080端口无法访问:
- 检查防火墙状态:
sudo ufw status - 检查服务是否运行:
sudo systemctl status 1panel
- 检查防火墙状态:
Chrome无法打开10080端口:
- 尝试其他浏览器
- 检查是否为HTTPS问题,尝试:
http://localhost:10080
Docker服务异常:
- 重启docker服务:
sudo systemctl restart docker - 检查docker日志:
journalctl -u docker -f
- 重启docker服务:
3. 高级配置与优化
3.1 Odoo生产环境配置
修改odoo.conf核心参数:
[options] ; 工作进程数 = (CPU核心数 * 2) + 1 workers = 5 ; 每个worker最大内存(MB),超过自动重启 limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 ; 数据库连接池大小 db_maxconn = 643.2 备份策略
数据库自动备份:
# 每天凌晨2点备份 0 2 * * * docker exec postgres15 pg_dump -U odoo -d odoo -f /backup/odoo_$(date +\%Y\%m\%d).sql1Panel定时备份:
- 进入面板 → 备份 → 创建计划
- 选择备份应用和数据卷
- 设置保留策略(如保留最近7天)
3.3 性能监控
安装Prometheus监控套件:
# docker-compose-monitor.yml version: '3' services: prometheus: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml grafana: image: grafana/grafana ports: - "3000:3000"配置Odoo监控指标:
# prometheus.yml scrape_configs: - job_name: 'odoo' static_configs: - targets: ['odoo:8069']4. 安全加固措施
4.1 网络层防护
修改默认端口:
# 修改1Panel端口 sudo sed -i 's/10080/自定义端口/g' /opt/1panel/conf/app.conf sudo systemctl restart 1panel启用Fail2Ban:
sudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
4.2 应用层安全
Odoo密码策略:
# 在addons/auth_password_policy模块中设置 password_minimum_length = 12 password_history = 5定期更新:
# 设置自动更新 sudo apt install -y unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
4.3 数据加密
数据库SSL连接:
# docker-compose.yml environment: POSTGRES_SSL: "on" POSTGRES_SSL_CERT_FILE: "/etc/ssl/certs/server.crt" POSTGRES_SSL_KEY_FILE: "/etc/ssl/private/server.key"备份加密:
# 使用gpg加密备份文件 gpg --symmetric --cipher-algo AES256 odoo_backup.sql
5. 故障排查手册
5.1 Docker常见问题
问题1:Virtualization support not detected
解决方案:
- 检查BIOS虚拟化设置
- Windows功能中启用Hyper-V和Windows Hypervisor Platform
- 执行:
wsl --update wsl --set-default-version 2
问题2:端口占用冲突
快速查找占用进程:
sudo netstat -tulnp | grep 80695.2 Odoo特定问题
问题1:模块安装失败
检查方法:
docker logs odoo19 | grep -i error常见原因:
- 依赖缺失:在自定义模块的__manifest__.py中添加
- 权限问题:检查卷挂载权限
问题2:性能缓慢
优化检查清单:
- 检查worker配置
- 启用pg_stat_statements分析SQL
- 检查系统负载:
docker stats
5.3 1Panel管理问题
问题1:面板无法更新
手动更新方法:
sudo 1panel update问题2:应用商店加载慢
更换国内源:
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /opt/1panel/conf/app.conf