目录
别忘了在config文件夹的odoo.conf文件里配置addons路径
概览
Odoo是一个全面的企业资源计划(ERP)和客户关系管理(CRM)软件,它提供了一个集成的解决方案,覆盖了销售、采购、库存、会计等多个业务领域。随着Odoo 17的发布,许多企业和开发者都在寻找简便的方法来安装和运行这一强大的软件。本文将指导你如何使用Docker和Docker Compose来安装和配置Odoo 17,确保你可以轻松地部署和管理你的Odoo实例。
前提条件
在开始之前,请确保你的系统中已经安装了Docker和Docker Compose。这将使我们能够通过编写配置文件的方式,定义和运行多个Docker容器。
使用Docker Compose安装Odoo 17
以下是一个简单的docker-compose.yml
文件,用于部署Odoo 17及其所需的PostgreSQL数据库:
version: '3.1'
services:
web:
image: odoo:17.0
depends_on:
- db
ports:
- "8069:8069"
volumes:
- ./odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
environment:
- ODOO_DB_PASSWORD=odoo
restart: on-failure
db:
image: postgres:15
ports:
- "8068:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ./odoo-db-data:/var/lib/postgresql/data
restart: on-failure
解释配置
-
版本(Version):我们使用的是Docker Compose的3.1版本,这确保了对新特性的支持和向后兼容性。
-
服务(Services):
web
:代表Odoo服务器本身,使用官方的odoo:17.0
镜像。我们映射了8069
端口,以便从外部访问Odoo,并指定了三个卷(volumes)用于持久化数据和自定义配置。db
:这是PostgreSQL数据库,Odoo需要此数据库来存储其数据。我们使用了postgres:15
镜像,并设置了相应的环境变量来初始化数据库。同样,我们为数据库数据定义了一个卷。
-
端口(Ports):端口映射允许外部访问到容器内的服务。对于Odoo,我们将容器内的
8069
端口映射到了同一个主机端口上。对于PostgreSQL,我们将容器的5432
端口映射到了主机的8068
端口上,尽管通常你可能不需要从外部访问数据库。 -
卷(Volumes):卷用于持久化和共享数据。这里我们为Odoo配置、数据以及额外的addons定义了卷,这样即使容器重启,数据也不会丢失。
-
环境变量(Environment):这些变量用于配置Odoo和PostgreSQL容器的行为,例如设置数据库密码。
-
重启策略(Restart):
on-failure
策略意味着如果容器退出代码非零,Docker将自动尝试重启容器。
配置addons路径
别忘了在config文件夹的odoo.conf文件里配置addons路径
addons_path = /mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons
如何运行
将上述配置保存为docker-compose.yml
文件,然后在文件所在的目录下运行以下命令来启动服务:
docker-compose up -d
这将在后台启动Odoo 17和PostgreSQL服务。你可以通过访问http://localhost:8069
来使用Odoo。
开发专用配置
如果是用于开发目的,修改文件自动重启服务,请新建一个Dockerfile:
FROM odoo:17.0
# Include any custom setup here
CMD ["odoo", "--dev=all"]
docker-compose.yml:
version: '3.1'
services:
web:
build: .
depends_on:
- db
ports:
- "8069:8069"
volumes:
- odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
environment:
- ODOO_DB_PASSWORD=odoo
restart: on-failure
command: ["odoo", "--dev=all"]
db:
image: postgres:15
ports:
- "8068:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data
restart: on-failure
volumes:
odoo-web-data:
odoo-db-data:
参考链接:dockerhub: https://hub.docker.com/_/odoo/
下一篇文章 odoo17开发入门教程(1)了解架构