在Ubuntu中使用Docker安装Odoo

Docker容器使安装和运行Odoo版变得容易。安装Docker之后,将在几分钟内运行Odoo。Odoo是用python编写的开源ERP和CRM软件。

一、安装 Docker

要使用Docker安装Odoo,请先使用官方安装脚本自动安装 Docker :(手动安装太复杂,不嫌麻烦请百度)

wget -qO- https://get.docker.com/ | sh

或:阿里云镜像

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或:也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

备注:参考文章https://www.runoob.com/docker/ubuntu-docker-install.html

二、安装PostgreSQL数据库

Odoo使用PostgreSQL服务器存储数据库。让我们创建一个postgres docker容器。

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=your-password-here -e POSTGRES_DB=postgres --name odoo-db postgres:10

备注: 在上述命令中,在此处用自己设置安全密码替换your-password-here

三、安装ODOO

用以下命令创建一个Odoo docker 容器:(为什么odoo和 PostgreSQL 要创建两个容器?标准部署,易于维护!)

( 您可能会问为什么我们要创建两个单独的容器。我们可以将PostgreSQL和Odoo安装在同一容器中吗?是的,我们可以,但这不是容器化的处理方式。使用容器,您应该将自己的容器中的东西分开。这是使用容器的正确模式。 )

docker run -d -p 127.0.0.1:8069:8069 -p 127.0.0.1:8072:8072 --name odoo --link odoo-db:db -t odoo

如果容器未自动启动,请使用 :

docker update --restart=unless-stopped CONTAINER_ID

您可以使用docker ps或docker ps -a命令找到CONTAINER_ID。

四、安装 nginx

接下来,我们需要配置要与Odoo一起使用的域。为此,我们使用nginx Web服务器作为反向代理。使用命令安装Nginx Web服务器

apt install nginx

五、 安装Let‘s Encrypt

wget https://raw.githubusercontent.com/serverok/server-setup/master/install/letsencrypt.sh
bash ./letsencrypt.sh

在获取SSL之前,我们需要为域配置一个简单的配置文件来配置Nginx Web服务器。

vi /etc/nginx/sites-enabled/odoo.conf

在odoo.conf文件中加:

server {
    listen 80;
    server_name YOUR-DOMAIN_HERE;
    root /var/www/html;
}

备注:把YOUR-DOMAIN_HERE改成你自己的域名

重新启动nginx :systemctl restart nginx

此时,nginx将通过/ var / www / html文件夹为网站提供服务。让我们使用certbot获得SSL证书

certbot --authenticator webroot --webroot-path /var/www/html --installer nginx -d YOUR-DOMAIN_HERE

获得SSL后,我们需要使用适当的nginx配置替换nginx配置

vi /etc/nginx/sites-enabled/odoo.conf

用以下内容替换文件中的所有内容。

upstream odoo {
    server 127.0.0.1:8069;
}

upstream odoo-chat {
    server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name YOUR-DOMAIN-HERE;

    location ^~ /.well-known/acme-challenge/ {
        root /var/www/html;
    }

    location / {
        return 301 https://YOUR-DOMAIN-HERE$request_uri;
    }
}

server {
    listen 443 ssl http2;
    server_name YOUR-DOMAIN-HERE;
    ssl_certificate /etc/letsencrypt/live/YOUR-DOMAIN-HERE/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/YOUR-DOMAIN-HERE/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    resolver 8.8.8.8 8.8.4.4;
    access_log /var/log/nginx/odoo-access.log;
    error_log /var/log/nginx/odoo-error.log;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    location / {
        proxy_redirect off;
        proxy_pass http://odoo;
    }

    location /longpolling {
        proxy_pass http://odoo-chat;
    }

    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering    on;
        expires 864000;
        proxy_pass http://odoo;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

重新启动nginx

systemctl restart nginx

此时,如果您转到您的网站,您将看到Odoo安装屏幕。您需要在这里输入数据库名称并填写一些信息。您可以选择任何数据库名称,安装程序将创建数据库。

最好再参考一下这篇官方文档:https://hub.docker.com/_/odoo/#!

推荐阅读

  1. odoo13实战篇——整套odoo案例操作流程示范
  2. ODOO13导入和导出数据教程
  3. 在windows操作系统上Composer安装ThinkPHP6.0教程!
  4. 在Ubuntu上创建Sudo管理员权限用户
  5. 如何在Ubuntu 18.04上安装Apache\MySQL和PHP
  6. 安装X2CRM
  7. Odoo14产品发布会
  8. 群晖(Synology)中如何安装VtigerCRM?

发表评论

电子邮件地址不会被公开。 必填项已用*标注