【问题标题】:Mounting custom addons odoo docker v.12安装自定义插件 odoo docker v.12
【发布时间】:2018-11-29 01:56:55
【问题描述】:

我是新手,我不知道我是否采取了正确的步骤。我做的第一件事是创建一个文件夹/插件,然后在这个文件夹中我创建了另一个文件夹/插件/celes_app,在最后一个文件夹中我有我的所有文件(init.py、manifest.py 等)。 然后我创建以下容器:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10

docker run -v /addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo

这样就成功创建了容器。我打开浏览器并输入端口 8069,它要求我创建一个新数据库,当我创建它时出现以下错误:

2018-11-28 23:45:46,936 1 INFO None odoo.service.db: Create database Prueba. 
2018-11-28 23:45:47,402 1 ERROR None odoo.service.db: CREATE DATABASE 
failed: Traceback (most recent call last): File "/usr/lib/python3/dist- 
packages/odoo/service/db.py", line 58, in _initialize_db odoo.modules.db.initialize(cr) 
File "/usr/lib/python3/dist-packages/odoo/modules/db.py", line 34, in initialize for i in odoo.modules.get_modules(): 
File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 408, in get_modules plist.extend(listdir(ad)) 
File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 401, in listdir for it in os.listdir(dir) 
PermissionError: [Errno 13] Permission denied: '/mnt/extra-addons' 2018-11-28 23:45:47,
422 1 ERROR None odoo.modules.loading: Database Prueba not initialized, you can force it with -i base 2018-11-28 23:45:47,
485 1 INFO Prueba odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 1 connections to 'dbname=Prueba user=odoo password=xxxx host=172.17.0.2 port=5432 sslmode=prefer'

谢谢

【问题讨论】:

  • 您是否在 Dockerfile 本身中设置了该文件夹的权限和所有权? odoo 用户需要读取权限。那是缺失的。需要在镜像中设置构建时间。
  • 您好罗德里戈,感谢您的回答。我不明白您在构建期间指的是什么权限。我该怎么做?
  • 发布您的 Dockerfile 以供审核。这就是问题/解决方案的所在。

标签: docker docker-container odoo-12


【解决方案1】:

按照这些步骤,我希望这个解决方案对你有用-

首先通过命令挂载包含我的额外插件的本地文件夹-

$ docker run -v /path/to/your/local/folder:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo

然后检查您的本地文件夹是否安装在 Odoo 容器上 -

$ docker exec -u root -it odoo /bin/bash

现在您已登录(登录后)

$ cd /mnt/extra-addons
$ ls

您应该会看到您的文件存在于您的本地/文件夹中。现在,它完成了,只需重新启动您的 docker odoo 服务器

停止-

$ sudo docker stop db
$ sudo docker stop odoo
$ sudo service docker stop

开始-

$ sudo service docker start
$ sudo docker start db
$ sudo docker start -a odoo

现在您可以从应用安装模块,数据库也应该可以正常工作了。

【讨论】:

  • 您好 Ujjwal,非常感谢您的回复。我做了你提到的,但我有权限问题。当我输入“ls -alrt”时,它给了我以下错误:“ls:无法打开目录'。':权限被拒绝”。当我检查文件夹的属性时,我得到“drwxr-xr-x.3 989 root 23 Nov 28 20:57 extra-addons”,即所有者是“989”(我不知道这是什么意思)因此我对她没有特权。我试图用“chown -R odoo extra-addons /”更改所有者,但我得到了相同的权限错误“chown:无法读取目录'extra-addons /':权限被拒绝”。
  • 只有在创建我放置“-v / addons: /mnt/extra-addons”的docker时才会发生这种情况,当我不放置它时,文件夹的所有者是“odoo”。做个测试,在创建docker时不用放置代码“-v/addons:/mnt/extra-addons”(让用户成为odoo),在文件夹/mnt/extra-addons/my_app内手动创建一个文件init 和一个文件 manifest,它运行良好,odoo 已安装并识别应用程序并可以安装。因此,我所拥有的问题是权限。
  • 为什么我放置代码“-v/addons:/mnt/extra-addons”时文件夹的所有者要改为“989”?我尝试放置代码“-u root -v / addons:/mnt/extra-addons”,但结果是一样的。
  • 嗨,Eduardo,似乎额外插件的许可正在毁掉一切。确保在安装您的额外插件之前将其更改为 sudo chmod 777 -R /mnt/extra-addons 的完全许可。并且当权限更改时,您会尝试将其挂载,因为相同的文件权限正在挂载到 docker 容器上。希望这会有所帮助!
猜你喜欢
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多