Docker上的Odoo开发

You*_*ira 5 python module docker odoo

我正在尝试将docker用于odoo模块开发。我有以下docker-compose.yml文件

db:
  image: postgres
  environment:
    POSTGRES_USER: odoo
    POSTGRES_PASSWORD: odoo
  volumes:
    - data:/var/lib/postgresql/data/

odoo:
  image: odoo
  links:
    - db:db
  ports:
    - "127.0.0.1:8069:8069"
  volumes:
    - extra-addons:/mnt/extra-addons
  command: -- --update=tutorial
Run Code Online (Sandbox Code Playgroud)

该模块仅包含一个__openerp__.py文件,但是odoo即使显示--update=tutorial选项也不显示我对其所做的更改

{
    'name': "tutorial",

    'summary': """Hello world!!""",

    'description': """
        This is the new description
    """,

    'author': "ybouhjira",
    'website': "ybouhjira.com",

    'category': 'Technical Settings',
    'version': '0.1',
    'depends': ["base"],
}
Run Code Online (Sandbox Code Playgroud)

该文件位于中名为教程的文件夹中extra-addons,我尝试停止并启动容器,甚至删除并重新创建它们。

Krz*_*Gał 6

您必须添加自己的配置文件。首先在 docker-compose.yml 挂载 /etc/odoo

odoo:
 image: odoo
 links:
  - db:db
 ports:
  - "127.0.0.1:8069:8069"
 volumes:
  - extra-addons:/mnt/extra-addons
  - ./config:/etc/odoo
Run Code Online (Sandbox Code Playgroud)

然后在 ./config 中创建“odoo.conf”并添加如下配置选项。

[options]
addons_path = /mnt/extra-addons,/usr/lib/python2.7/dist- packages/odoo/addons
data_dir = /var/lib/odoo
auto_reload = True
Run Code Online (Sandbox Code Playgroud)

重启odoo,进入调试模式然后apps->更新模块列表

如果仍然不起作用,请检查插件目录的访问权限并检查组和其他人是否可以读取它们


小智 5

就像shodowsjedi已经说过的那样,您需要创建一个__init__.py文件(请参阅模块结构:https : //www.odoo.com/documentation/8.0/howtos/backend.html#module-structure )。

同样,检查odoo容器中的权限,odoo卷中的文件将在容器(可以与其他用户关联)中包含系统(主机)的uid和gid。要检查这一点,您可以使用docker exec:

docker exec docker_odoo_1 ls -la /mnt/extra-addons
Run Code Online (Sandbox Code Playgroud)

如果您不知道容器的码头工人名称,则可以使用以下方法进行检索:

docker-compose ps
Run Code Online (Sandbox Code Playgroud)

最后也是最重要的一个,使用以下命令检查odoo日志:

docker-compose logs
Run Code Online (Sandbox Code Playgroud)

并在Odoo的配置页面中(或在服务器启动时)更新模块


ifi*_*hat 2

要创建新模块,您需要的文件比 Odoo Manifest__openerp__.py文件更多,您还需要 Python 描述符文件__init__.py作为最小结构,当然您需要两个以上的文件,但最小的模块必须存在。在现有数据库上创建模块后,您需要在设置下调用更新模块列表以正确加载模块,然后您将能够安装它。