# 教程:使用Docker部署Odoo 16
## 介绍
Odoo是一个全功能的ERP(企业资源规划)系统,包括销售、CRM、项目管理、仓库管理、财务管理、人力资源等模块。在本教程中,我们将向你展示如何使用Docker来部署Odoo 16。
## 预备知识
在开始之前,你需要确保你的系统已经安装了以下软件:
- Docker:用于运行容器的开源平台。
- Docker Compose:用于定义和运行多容器Docker应用的工具。
## 步骤1:安装Docker
如果你的系统还未安装Docker,你可以按照以下步骤进行安装:
- 在Ubuntu上,使用以下命令安装Docker:
```
sudo apt-get update
sudo apt-get install docker.io
```
- 在CentOS上,使用以下命令安装Docker:
```
sudo yum update
sudo yum install docker
```
- 在Windows或Mac上,你可以从Docker官方网站下载并安装Docker Desktop。
安装完成后,使用以下命令启动Docker服务并设置为开机启动:
```
sudo systemctl start docker
sudo systemctl enable docker
```
## 步骤2:安装Docker Compose
在大多数系统上,你可以使用以下命令来安装Docker Compose:
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
## 步骤3:创建Docker Compose文件
在你选择的目录中,创建一个名为`docker-compose.yml`的文件,并输入以下内容:
version: '2'
services:
web:
image: odoo:16
depends_on:
- db
volumes:
- odoo-web-data:/var/lib/odoo
db:
image: postgres:14
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
volumes:
- odoo-db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
nginx:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"
- "443:443"
volumes:
odoo-web-data:
odoo-db-data:
这个文件定义了三个服务:一个是Odoo应用服务,另一个是PostgreSQL数据库服务以及nginx代理服务。Odoo服务依赖于数据库服务。
接下来还需要在当前目录中建立一个nginx.conf,内容如下:
events {}
http {
client_max_body_size 100M;
server {
listen 80;
location / {
proxy_pass http://web:8069;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
## 步骤4:启动Odoo服务
在包含`docker-compose.yml`文件的目录中,运行以下命令来启动服务:
```
docker-compose up -d
```
这将在后台启动Odoo和PostgreSQL服务以及nginx ,并通过nginx代理 Odoo的8069端口。
这样你通过80端口就能访问
## 步骤5:访问Odoo
打开你的浏览器,输入`http://ip`,你将看到Odoo的欢迎页面。按照指示创建你的数据库,然后你就可以开始使用Odoo了。
## 结论
至此,你已经成功地使用Docker部署了Odoo 16。现在你可以开始使用Odoo来管理你的企业资源了。
再附上一个nginx,启用https参考:
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
client_max_body_size 100M;
server {
listen 80;
listen [::]:80;
server_name odoo16.xiaoniba.com erp6.xnb.me erp.xiaoniba.com;
# Redirect HTTPls requests to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name odoo16.xiaoniba.com erp6.xnb.me erp.xiaoniba.com;
#从上游服务器请求时间限制
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# SSL Certificate
ssl_certificate /etc/nginx/cert/erp.xiaoniba.com/cert.pem;
ssl_certificate_key /etc/nginx/cert/erp.xiaoniba.com/key.pem;
# Add Headers for odoo proxy mode
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Proxy settings
# Redirect requests to odoo backend server
location / {
proxy_pass http://odoo;
proxy_redirect off;
}
location /longpolling {
proxy_pass http://odoochat;
}
# Common gzip settings
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
# Access and error logs
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
}
havfun
发表评论 取消回复