# 教程:使用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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部