| 🏫 教学机构 | 👨🏫 讲师 | 📧 联系方式 | 💬 QQ群 | 📺 配套视频 |
|---|---|---|---|---|
| 逸寻智库 | 焰漩十三 | postmaster@huo15.com | 1093992108 | 📺 B站视频 |
这是一个 基于 Docker 的 Odoo 19.0 开发环境,用于快速搭建和部署 Odoo 系统。
企业版目录enterprise在这里:https://huihuoyun.huo15.com/odoo/documents
目录:公司/软件/odoo/版本-19
docker_odoo/ ├── config/ │ └── odoo.conf # Odoo 主配置文件 ├── huo15_addons/ # 火一五自定义模块目录 ├── enterprise/ # 企业版模块目录(空目录即为社区版) ├── tutorials/ # 教程模块目录 ├── waha_addons/ # 哇哈汽车模块目录 ├── xbwd_addons/ # 萧伯网大模块目录 ├── huo15_base_addons/ # 火一五基础模块目录 ├── tpm_huihuoyun/ # 辉火云第三方模块目录 ├── Dockerfile # Docker 镜像构建文件 ├── docker-compose.yml # Docker 编排配置 ├── update_module.sh # Linux/Mac 模块管理脚本 ├── update_module.bat # Windows 模块管理脚本 └── README.md # 项目说明文档
注意:基于 Odoo 19 开发,请区分好模块开发。
models/ - 存放模型定义views/ - 存放视图和模板controllers/ - 存放HTTP控制器data/ - 存放示例数据和初始化数据security/ - 存放访问权限和安全规则static/ - 存放静态资源(CSS, JS, 图片等)wizard/ - 存放向导相关文件(如需要)report/ - 存放报表相关文件(如需要)tests/ - 存放测试文件sale_order.py)res_partner_view.xml)sale.order)使用 odoo scaffold 命令创建新模块骨架
方法一:使用 docker-compose exec(推荐)
基本语法:
docker-compose exec web /usr/bin/odoo scaffold 模块名 /usr/lib/python3/dist-packages/odoo/huo15_addons
示例:创建一个名为 my_module 的模块
docker-compose exec web /usr/bin/odoo scaffold my_module /usr/lib/python3/dist-packages/odoo/huo15_addons
方法二:使用 docker-compose run(一次性容器)
基本语法:
docker-compose run --rm web --config /etc/odoo/odoo.conf scaffold 模块名 /usr/lib/python3/dist-packages/odoo/huo15_addons --stop-after-init
示例:创建一个名为 my_module 的模块
docker-compose run --rm web --config /etc/odoo/odoo.conf scaffold my_module /usr/lib/python3/dist-packages/odoo/huo15_addons --stop-after-init
在稳定版本中修改现有文件时,严格遵循原有风格以维护修订历史
在开发版本中应用编码指南仅对修改部分或重大更改的文件
定义访问权限、用户组和记录规则时使用指定的安全文件
确保模块专注于特定功能,保持清晰和易于维护
遵循Odoo的命名约定和文档标准提高可读性和可用性
xlsxtpl - Excel 模板处理pyjwt - JWT 认证wechatpy - 微信集成google-auth - Google 认证adminadmin当使用 nginx 配置反向代理的时候,请参考 nginx_odoo19.conf 文件。该配置文件包含了完整的 Odoo 19 反向代理设置,包括:
如果需要将其他目录链接到项目中的 addons 目录,可以使用以下命令:
Windows:
New-Item -ItemType SymbolicLink -Path "D:\workspace\huo15\docker_odoo\tyb_addons" -Value "D:\workspace\projects\tyb\tyb_addons"
macOS/Linux:
ln -s /Users/job/workspace/projects/tyb/tyb_addons /Users/job/workspace/huo15/business_suite_huihuoyun/docker_odoo/tyb_addons
每次执行 docker compose 命令时,请务必使用 -p <项目名> 参数指定项目名,例如:
sudo docker compose -p <项目名> up -d
这样可以避免多个项目之间的容器名称冲突,确保每个项目使用独立的容器命名空间。
# 构建并启动所有服务(请替换 <项目名> 为您的实际项目名)
sudo docker compose -p <项目名> up -d --build
# 推荐使用,仅重启 Odoo Web 服务
docker-compose restart web
# 停止所有服务
docker-compose down
项目提供了便捷的模块管理工具,支持 更新 和 卸载 模块操作。Windows 和 Linux/Mac 用户都可以使用相同的参数和功能。
update_module.bat [-m 模块名1 模块名2 ...] [-d 数据库名] [-p 项目名] [-s web服务名,db服务名] [--update|--remove] [-h]
| 参数 | 说明 | 默认值 |
|---|---|---|
-m | 指定要操作的模块名(可多个,空格分隔) | huo15_online_edu |
-d | 指定数据库名 | edu |
-p | 指定 Docker Compose 项目名称 | - |
-s | 指定服务名,格式:web服务名,db服务名 或仅 web服务名 | web,db |
--update | 更新模块(默认操作,可省略) | ✅ 默认 |
--remove | 卸载模块 | - |
-h, --help | 显示帮助信息 | - |
1. 基础用法(更新默认模块 huo15_online_edu)
update_module.bat
2. 更新单个模块(使用默认数据库)
update_module.bat -m huo15_online_edu
3. 更新多个模块
update_module.bat -m huo15_online_edu waha_crm -d edu
4. 更新模块到指定数据库
update_module.bat -d test_db -m huo15_online_edu
5. 指定项目名更新模块
update_module.bat -p waha -m waha_doc_management -d waha --update
6. 指定服务名更新模块
update_module.bat -s job_web,job_db -m huo15_online_edu
7. 仅指定 web 服务名(db 服务名使用默认值)
update_module.bat -s job_web -m huo15_online_edu
8. 卸载模块
update_module.bat -m huo15_onlyoffice --remove
9. 卸载模块(指定数据库和项目名)
update_module.bat -p waha -m waha_doc_management -d waha --remove
10. 查看帮助信息
update_module.bat -h
./update_module.sh [-m 模块名1 模块名2 ...] [-d 数据库名] [-p 项目名] [-s web服务名,db服务名] [--update|--remove] [-h]
| 参数 | 说明 | 默认值 |
|---|---|---|
-m | 指定要操作的模块名(可多个,空格分隔) | huo15_online_edu |
-d | 指定数据库名 | edu |
-p | 指定 Docker Compose 项目名称 | - |
-s | 指定服务名,格式:web服务名,db服务名 或仅 web服务名 | web,db |
--update | 更新模块(默认操作,可省略) | ✅ 默认 |
--remove | 卸载模块 | - |
-h, --help | 显示帮助信息 | - |
1. 更新单个模块(使用默认数据库)
./update_module.sh -m huo15_online_edu
2. 更新多个模块
./update_module.sh -m huo15_online_edu waha_crm -d edu
3. 更新模块到指定数据库
./update_module.sh -d test_db -m huo15_online_edu
4. 指定项目名更新模块
./update_module.sh -p waha -m waha_doc_management -d waha --update
5. 指定服务名更新模块
./update_module.sh -s job_web,job_db -m huo15_online_edu
6. 仅指定 web 服务名(db 服务名使用默认值)
./update_module.sh -s job_web -m huo15_online_edu
7. 卸载模块
./update_module.sh -m huo15_onlyoffice --remove
8. 卸载模块(指定数据库和项目名)
./update_module.sh -p waha -m waha_doc_management -d waha --remove
9. 使用默认配置(更新 huo15_online_edu 到 edu 数据库)
./update_module.sh
10. 查看帮助信息
./update_module.sh -h
docker-compose downdocker-compose up -ddocker-compose psdocker-compose restart web如果您更喜欢通过 Odoo 界面手动操作:
admin,密码:admin)由于 enterprise 目录在 .gitignore 中被忽略,Cursor 和 VSCode 默认不会索引这些文件,导致 AI 功能无法读取这些代码。
项目已配置 .vscode/settings.json 文件,确保 Cursor/VSCode 能够读取 enterprise 目录:
files.exclude:控制文件浏览器显示,不排除 enterprise 目录search.exclude:控制搜索范围,不排除 enterprise 目录files.watcherExclude:控制文件监视,不排除 enterprise 目录python.analysis.exclude:控制 Python 分析,不排除 enterprise 目录如果需要让 Cursor 读取其他被 .gitignore 忽略的目录(如 huo15_base_addons),只需确保这些目录不在 .vscode/settings.json 的排除列表中即可。
.vscode/settings.json 配置将模块放入相应的 addons 目录(如 huo15_addons/),然后在 config/odoo.conf 中配置 addons_path,最后使用 update_module.sh 脚本更新模块。
修改 docker-compose.yml 文件中的端口映射:
ports:
- "8070:8069" # 将 8070 改为您想要的端口
数据存储在 config/pgdata/ 目录中,定期备份该目录即可。
docker update --restart=always <container_id>
如需帮助或有任何问题,欢迎联系我们:
© 2025 青岛火一五信息科技有限公司 | 让企业数字化更简单

请您关注我们的微信公众号:"逸寻智库"