使用 pycharm调试docker环境运行的Odoo( 二 )


# - ./addons:/mnt/extra-addons
- ../../git-repo/geely-mts:/mnt/extra-addons
 
# Odoo Environment Variables
# --------
#
# The odoo image uses a few different environment
# variables when running to connect to the postgres
# database.
#
# Make sure that they are the same as the database user
# defined in the db container environment variables.
environment:
- HOST=db
- USER=odoo
- PASSword=odoo
 
# Database Container Service Definition
# --------
#
# All of the information needed to start up a postgresql
# container.
db:
image: postgres:11
 
# Database Environment Variables
# --------
#
# The postgresql image uses a few different environment
# variables when running to create the database. Set the
# username and password of the database user here.
#
# Make sure that they are the same as the database user
# defined in the web container environment variables.
environment:
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- POSTGRES_DB=postgres # Leave this set to postgres
 
pgadmin:
image: dpage/pgadmin4
depends_on:
- db
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:80"
 
volumes:
pgadmin:
说明:
1. 在 Odoo 服务,使用自定义的镜像,例如 Odoo:10.1
2. 编排了 PG服务
3. 编排 PGADMIN 方便对PG 进行管理
 
测试 docker-compose.yml
 
使用 docker-compose 启动 Odoo,运行命令
? odoo10c docker-compose up
【使用 pycharm调试docker环境运行的Odoo】odoo10c_db_1 is up-to-date
odoo10c_pgadmin_1 is up-to-date
Recreating odoo10c_web_1 ... done
Attaching to odoo10c_db_1, odoo10c_pgadmin_1, odoo10c_web_1
pgadmin_1 | NOTE: Configuring authentication for SERVER mode.
pgadmin_1 |
pgadmin_1 | [2019-11-03 13:02:57 +0000] [1] [INFO] Starting gunicorn 19.9.0
pgadmin_1 | [2019-11-03 13:02:57 +0000] [1] [INFO] Listening at: http://[::]:80 (1)
 
第一次运行 docker-compose 时,会创建相关的容器,上面的例子显示更新容器,是因为容器之前已经创建好 。
 
此时,用浏览器访问 http://127.0.0.1:9000 即可访问到 Odoo服务 ; 访问 http://127.0.0.1:5050 即可访问到 pgadmin
 
Odoo镜像说明
官方 Odoo镜像会在 在 docker-compose.yml 所在目录建立 2个目录,用于挂载到 Odoo容器用做 volume,其中:addons挂载到 /mnt/extra-addons,以及 config 挂载到 /etc/odoo
Odoo容器默认使用 /etc/odoo/odoo.conf 作为配置文件 。
 
所以,1,如果要自定义配置,修改 config/odoo.conf 文件即可,可以从 odoo docker 项目拷贝 原始 配置文件 作为 config/odoo.conf ;2,如果要挂载自定义的ADDONS,挂载到 addons 目录即可 。
Pycharm 调用 docker compose 远程运行Odoo
 
配置pycharm 使用 docker compose
 
使用 pycharm 将 Odoo 模块项目导入

使用 pycharm调试docker环境运行的Odoo

文章插图
 
 
在 preference,选择 项目解释器
使用 pycharm调试docker环境运行的Odoo

文章插图
 
 
在项目解释器,点击 ??图标,选择 ADD
在弹窗,选择 docker compose
使用 pycharm调试docker环境运行的Odoo

文章插图
 
在 server 处,选择 docker 服务器,或者 新建docker 服务器 。
注意:
如果是 windows平台,需要 关闭Docker TLS,如何关闭,具体 参考PYcharm官方文档,或者docker 文档
使用 pycharm调试docker环境运行的Odoo

文章插图
 
在 configuration file 选择前面建立的服务编排 docker-compose.yml 文件
 
在 service 选择 web 。注意,Pycharm 自动识别出 编排文件包含的所有服务,并且按字母排序
 
然后,点击OK 确认 。
pycharm将会 去docker容器,侦测python的版本,完成后,远程解释器将会配置如下图所示
使用 pycharm调试docker环境运行的Odoo

文章插图
 
使用 远程解释器运行 Odoo
 
建立 开发专用 Odoo配置
 
因为 pycharm 会将 项目 挂载到 容器的 /opt/project 下,如Odoo默认的 extra-addons不同;


推荐阅读