Odoo 19.0与Docker Desktop快速部署指南 1. Odoo 19.0与Docker Desktop快速部署实战1.1 环境准备与前置检查在开始部署前我们需要确保系统满足以下条件Windows 10/11 Pro/Enterprise版本Home版需手动开启Hyper-VBIOS中已启用虚拟化支持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-world1.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: - HOSTpostgres - USERodoo - PASSWORDodoo postgres: image: postgres:15 container_name: postgres15 environment: - POSTGRES_DBpostgres - POSTGRES_USERodoo - POSTGRES_PASSWORDodoo volumes: - ./postgres-data:/var/lib/postgresql/data启动命令docker-compose up -d访问地址http://localhost:80691.4 常见问题排查端口冲突检查8069端口是否被占用netstat -ano | findstr 8069解决方案修改docker-compose.yml中的端口映射如8070:8069数据库连接失败检查Postgres容器日志docker logs postgres15确保环境变量匹配特别是密码一致性性能优化建议增加Odoo worker数量environment: - WORKERS4启用长轮询command: --devreload --workers4 --proxy-mode2. 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/fstab2.4 通过1Panel部署Odoo在1Panel应用商店搜索Odoo点击安装填写配置端口映射8069:8069数据库密码持久化存储路径点击确认部署访问方式http://服务器IP:80692.5 常见问题解决10080端口无法访问检查防火墙状态sudo ufw status检查服务是否运行sudo systemctl status 1panelChrome无法打开10080端口尝试其他浏览器检查是否为HTTPS问题尝试http://localhost:10080Docker服务异常重启docker服务sudo systemctl restart docker检查docker日志journalctl -u docker -f3. 高级配置与优化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启用Fail2Bansudo apt install -y fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local4.2 应用层安全Odoo密码策略# 在addons/auth_password_policy模块中设置 password_minimum_length 12 password_history 5定期更新# 设置自动更新 sudo apt install -y unattended-upgrades sudo dpkg-reconfigure unattended-upgrades4.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.sql5. 故障排查手册5.1 Docker常见问题问题1Virtualization 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 stats5.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