按照官方教程来操作即可: https://hub.docker.com/_/odoo/
环境: Linux CoreNAS 4.19.25-coreos #1 SMP Sat Mar 9 01:05:06 -00 2019 x86_64 Intel(R) Celeron(R) CPU N3150 @ 1.60GHz GenuineIntel GNU/Linux
PosgreSQL 数据库存储目录: /home/disks/HD160G/data/postgresql
此镜像需要一个运行中的 PostgreSQL 服务.
$ docker run -itd -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo123 -e POSTGRES_DB=postgres -v /home/odoo/data:/var/lib/postgresql --name db postgres:12
$ docker run -itd -p 8069:8069 --name odoo --link db:db odoo
运行中的Postgres的容器名必须是db才能使Odoo能够连接到该Postgres服务器。
$ docker stop odoo
$ docker start -a odoo
重新启动 PostgreSQL 服务器时, 还必须重新启动链接到该服务器的 odoo 实例, 因为服务器地址已更改, 链接因此中断。
重新启动 PostgreSQL 服务器不会影响创建的数据库。
odoo服务器的默认配置文件是 (位于/etc/odoo/odooo. conf) 可以在启动时使用卷进行覆盖。假设您在宿主机上的自定义配置文档绝对地址是 /path/to/odoo/odoo.conf , 则需要运行下列指令
$ docker run -itd -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db odoo
请使用此配置模板编写自定义配置, 因为我们已经为odoo在 Docker 容器中运行 而设置了一些参数。
您还可以直接在线指定 Odoo 参数。这些参数必须在关键字之后给出--在命令行中, 如下所示
$ docker run -itd -p 8069:8069 --name odoo --link db:db odoo -- --db-filter=odoo_db_.*
您可以在 Odoo 容器中安装自己的 Odoo 加载项, 要安在/mnt/extra-addons 中
$ docker run -itd -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db odoo
$ docker run -itd -p 8070:8069 --name odoo2 --link db:db odoo
$ docker run -itd -p 8071:8069 --name odoo3 --link db:db odoo
请注意,如果计划使用邮件和报告功能,则当主机和容器端口不是对等匹配时(例如8070和8069),必须在Odoo中设置Settings-> Parameters-> System Parameters,将web.base.url设置为 容器端口(例如127.0.0.1:8069)。
调整这些环境变量以轻松连接到postgres服务器:
HOST
: postgres 服务的地址.如果你使用的是一个 postgres容器, 则把该容器的名称设定为默认的 db
.PORT
: postgres服务器正在侦听的端口,默认为 5432
.USER
: Odoo将与之连接的postgres角色。 如果您使用了postgres容器,请将其设置为与POSTGRES_USER相同的值, 默认为odoo。PASSWORD
: Odoo将与之连接的postgres角色的密码。 如果您使用了postgres容器,请将其设置为与POSTGRES_PASSWORD相同的值, 默认为odoo。最简单的 docker-compose.yml
文档内容应当如下所示:
version: '2'
services:
web:
image: odoo:12.0
depends_on:
- db
ports:
- "8069:8069"
db:
image: postgres:10
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
如果默认的postgres 账号不适合您, 则可调整环境变量如下:
version: '2'
services:
web:
image: odoo:12.0
depends_on:
- mydb
ports:
- "8069:8069"
environment:
- HOST=mydb
- USER=odoo
- PASSWORD=myodoo
mydb:
image: postgres:10
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=myodoo
- POSTGRES_USER=odoo
下面是最后一个示例, 演示如何装载自定义加载项、如何使用自定义配置文件以及如何使用 Odoo 和 postgres 数据目录的卷:
version: '2'
services:
web:
image: odoo:12.0
depends_on:
- db
ports:
- "8069:8069"
volumes:
- odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
db:
image: postgres:10
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
volumes:
odoo-web-data:
odoo-db-data:
若要启动 Odoo 实例, 则请进入前面的示例所创建的docker-compose.yml文件的目录, 然后运行:
docker-compose up -d