docker搭建odoo企业管理开源解决方案

有什么用/怎么用

相关内容

实现方法

需要准备的目录有:

Odoo ERP的部分

​ odoo-web-data

​ config

​ addons

Odoo 数据库的部分:

​ odoo-db-data

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '3.1'
services:
web:
image: odoo:17.0
depends_on:
- odoodb
ports:
- "8069:8069"
volumes:
- ./odoo-web-data:/var/lib/odoo
#- ./config:/etc/odoo
#- ./addons:/mnt/extra-addons
environment:
- HOST=odoodb
- USER=odoo
- PASSWORD=myodoo20250401
odoodb:
image: postgres:15
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=myodoo20250401
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ./odoo-db-data:/var/lib/postgresql/data/pgdata

运行命令:

1
2
3
4
5
6
7
cd ~
mkdir odoo
cd odoo
mkdir odoo-web-data && mkdir config && mkdir addons && mkdir odoo-db-data
vi docker-compose.yaml

docker-compose up

访问 http://192.168.6.117:8069

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

后台显示的错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
web-1     | 2025-04-01 13:30:10,775 1 ERROR ? odoo.http: Exception during request handling.              
web-1 | Traceback (most recent call last):
web-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2206, in __call__
web-1 | request._post_init()
web-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1391, in _post_init
web-1 | self.session, self.db = self._get_session_and_dbname()
web-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 1397, in _get_session_and_dbname
web-1 | session = root.session_store.new()
web-1 | File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 28, in __get__
web-1 | value = self.fget(obj)
web-1 | File "/usr/lib/python3/dist-packages/odoo/http.py", line 2132, in session_store
web-1 | path = odoo.tools.config.session_dir
web-1 | File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 766, in session_dir
web-1 | os.makedirs(d, 0o700)
web-1 | File "/usr/lib/python3.10/os.py", line 225, in makedirs
web-1 | mkdir(name, mode)
web-1 | PermissionError: [Errno 13] Permission denied: '/var/lib/odoo/sessions'
web-1 | 2025-04-01 13:30:10,776 1 INFO ? werkzeug: 192.168.6.221 - - [01/Apr/2025 13:30:10] "GET /fav
icon.ico HTTP/1.1" 500 - 0 0.000 0.001
1
2
3
4
5
6
7


$ sudo chmod -R 777 addons
$ sudo chmod -R 777 config
$ sudo chmod -R 777 odoo-db-data
$ sudo chmod -R 777 odoo-web-data

设置好权限以后, 可以运行访问网页

image-20250401213614590

Odoo定制单据打印的PDF内容

激活开发者模式后,可在”设置->技术->用户界面->视图”搜索和编辑视图:

image-20250403175105057

可以看到打印模板视图是QWeb视图。QWeb是一个基于XML的模板引擎,用于生成HTML片段和界面。模板命令是写在XML标签内以”t-“开头的属性。

以报价单打印模板为例,可通过“t-field=doc.字段名”输出单据头体信息:

灵感来源

Odoo (formerly known as OpenERP) is a suite of open-source business apps.

https://github.com/minhng92/odoo-17-docker-compose

个性化需求沟通 扫客服加V加群: