如何在 Ubuntu 上使用 Docker 安装 Odoo如何在 Ubuntu 上使用 Docker 安装 Odoo如何在 Ubuntu 上使用 Docker 安装 Odoo如何在 Ubuntu 上使用 Docker 安装 Odoo
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 上使用 Docker 安装 Odoo

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Odoo 是一个用 Python 编写的开源企业资源规划 (ERP) 工具。它支持多种插件,可满足不同类型的业务需求,例如会计、工资、库存管理等。

在本教程中,您将使用 Docker Compose 安装 Odoo 和 PostgreSQL 数据库,然后安装 Nginx 以充当 Odoo 站点的反向代理。最后,您将使用 Certbot 从 Let’s Encrypt 证书颁发机构下载并配置 TLS 证书来启用安全 HTTPS 连接。

先决条件

如果您使用的是 Ubuntu 16.04 或更低版本,我们建议您升级到更新版本,因为 Ubuntu 不再提供对这些版本的支持。这本指南集将帮助您升级 Ubuntu 版本。

要完成本教程,您将需要:

  • 具有 2 个或更多 CPU 的 Ubuntu 服务器,具有具有 sudo 权限的非 root 用户和活动防火墙。有关如何设置这些的指南,请从此列表中选择您的发行版并遵循我们的初始服务器设置指南。

  • 安装了 Docker。按照“如何在Ubuntu上安装和使用Docker”22.04/20.04/18.04的步骤1和步骤2进行安装并配置您的非root Strong> 用户能够运行 docker 命令。

注意:如果您使用 DigitalOcean 的一键式 Docker 映像,则可以跳过这些先决条件。该映像预先配置了 Docker、Docker Compose 和 UFW。

在您选择的区域中启动新的 Docker 映像,然后以 root 用户身份登录并继续学习本教程。

  • 最后,要启用 TLS,您需要一个指向服务器公共 IP 地址的域名。这应该类似于 example.com 或 odoo.example.com。如果您使用的是 DigitalOcean,请参阅我们的 DNS 快速入门,了解有关在控制面板中创建域资源的信息。

满足所有先决条件后,请继续执行第 1 步,您将在其中安装 docker-compose 软件包。

第 1 步 — 安装 Docker Compose

要安装 docker-compose 命令行工具,请刷新软件包列表,然后使用 apt 安装软件包:

sudo apt update
sudo apt install docker-compose

注意:您还可以安装比 Ubuntu 附带的更新的 Docker Compose 软件包。为此,请按照如何在 Ubuntu 22.04/20.04/18.04 上安装和使用 Docker Compose 的步骤 1 进行操作。

如果您选择使用此版本的 Docker Compose,则需要将 docker-compose 替换为 docker-compose 作为命令。

您可以通过运行以下命令来确认该软件包已安装:

docker-compose –version

您应该收到如下输出:

docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10

确认服务器上安装了 Docker Compose 后,您将在本教程的下一步中使用 Docker Compose 配置并启动 Odoo 和 PostgreSQL。

第 2 步 — 使用 Docker Compose 运行 Odoo 和 PostgreSQL

要开始创建 Odoo 和 PostgreSQL 容器,请在主目录中创建一个名为 odoo 的目录来存储您将在本教程中创建的文件。您将使用此目录来存储运行 Odoo 所需的所有文件。

运行以下命令创建目录,然后 cd 进入该目录:

mkdir ~/odoo
cd ~/odoo

现在使用 nano 或您喜欢的编辑器打开一个名为 docker-compose.yml 的新空白 YAML 文件:

nano docker-compose.yml

您将使用此文件与 docker-compose 命令来启动 Odoo 和 PostgreSQL 容器并将它们链接在一起。将以下行添加到文件中:

version: '3'
services:
  odoo:
    image: odoo:15.0
    env_file: .env
    depends_on:
      - postgres
    ports:
      - "127.0.0.1:8069:8069"
    volumes:
      - data:/var/lib/odoo
  postgres:
    image: postgres:13
    env_file: .env
    volumes:
      - db:/var/lib/postgresql/data/pgdata

volumes:
  data:
  db:

该文件定义了两个服务。第一个称为 odoo,它运行 Odoo 应用程序。第二个称为 postgres,它是 PostgreSQL 数据库容器。这两个服务都引用命名卷,它们用于在运行的容器实例之外存储数据。最后,odoo 服务将服务器上的端口 8069 公开给在同一端口 8069 上运行的 Odoo 容器。

完成编辑后保存并退出文件。如果您使用的是 nano,请按 CTRL+O,然后按 RETURN 保存,然后按 CTRL+X 退出。

Odoo 和 PostgreSQL 容器使用环境变量来配置自身。 docker-compose.yml 文件为这两个服务指定 env_file 指令。然后,该指令包含引用的文件,其中包含每个服务运行所需的变量。

通常建议使用此方法,而不是直接将环境变量添加到 docker-compose.yml 文件,因为最好不要在 docker-compose.yml 中添加密码。 > 文件。如果您要将文件提交到 Git 存储库或其他源代码控制系统,则此方法特别适用。

使用 nano 打开一个新的 .env 文件:

nano .env

将以下行添加到文件中,并用您选择的 POSTGRES_USER 和 POSTGRES_PASSWORD 替换突出显示的值:

# postgresql environment variables
POSTGRES_DB=postgres
POSTGRES_PASSWORD=a_strong_password_for_user
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata

# odoo environment variables
HOST=postgres
USER=odoo
PASSWORD=a_strong_password_for_user

要为 Odoo 和 PostgreSQL 生成密码,请使用 openssl 命令,该命令在大多数 Linux 系统上都可用。在服务器上运行以下命令以生成一组随机字节并打印可用作密码的 Base64 编码版本:

openssl rand -base64 30

将生成的字符串粘贴到 .env 文件中,代替 a_strong_password_for_user 占位符密码。

完成 .env 文件的编辑后,保存并退出文本编辑器。

现在,您可以使用 docker-compose 命令启动 odoo 和 postgres 容器:

docker-compose up -d

up 子命令告诉 docker-compose 启动容器以及在 docker-compose.yml 中定义的关联卷和网络文件。 -d 标志(代表“daemonize”)告诉 docker-compose 在后台运行容器,这样该命令就不会接管您的终端。 docker-compose 将在下载所需的 Docker 镜像并启动容器时打印一些简短的输出:

Creating network "odoo_default" with the default driver
Creating volume "odoo_odoo_data" with default driver
Creating volume "odoo_postgres_data" with default driver
Pulling odoo (odoo:14.0)...
15.0: Pulling from library/odoo
. . .

如果您想随时停止 Odoo 和 PostgreSQL 容器,请在 ~/odoo 目录中运行以下命令:

docker-compose stop

容器将被停止。其卷中的配置和数据将被保留,以便您可以使用 docker-compose up -d 命令再次启动容器。

完成后,Odoo 应该可以运行了。您可以使用 curl 命令获取主页来测试网络服务器是否在 127.0.0.1:8069 运行:

curl --head http://localhost:8069

这将仅打印响应中的 HTTP 标头:

HTTP/1.0 303 SEE OTHER
Content-Type: text/html; charset=utf-8
Content-Length: 215
Location: http://localhost:8069/web
Set-Cookie: session_id=142fa5c02742d0f5f16c73bc14ec8144b8230f8a; Expires=Mon, 06-Jun-2022 20:45:34 GMT; Max-Age=7776000; HttpOnly; Path=/
Server: Werkzeug/0.14.1 Python/3.7.3
Date: Tue, 08 Mar 2022 20:45:34 GMT

303 SEE OTHER 响应表示 Odoo 服务器已启动并正在运行,但您应该访问另一个页面来完成安装。突出显示的 http://localhost:8069/web Location 标头指示在浏览器中访问 Odoo 安装程序页面的位置。

接下来,我们将设置 Nginx 将公共流量代理到 Odoo 容器。

第 3 步 — 安装和配置 Nginx

将 Nginx 等 Web 服务器放在 Odoo 服务器前面可以通过将缓存、压缩和静态文件服务转移到更高效的流程来提高性能。我们将安装 Nginx 并将其配置为反向代理到 Odoo 的请求,这意味着它将负责将用户的请求传递给 Odoo 并再次返回。使用非容器化 Nginx 进程还可以更轻松地在下一步中添加 Let’s Encrypt TLS 证书。

首先,刷新您的软件包列表,然后使用 apt 安装 Nginx:

sudo apt update
sudo apt install nginx

使用 Nginx Full UFW 应用程序配置文件允许公共流量到达端口 80 和 443(HTTP 和 HTTPS):

sudo ufw allow "Nginx Full"

Rule added
Rule added (v6)

接下来,在 /etc/nginx/sites-available 目录中打开一个新的 Nginx 配置文件。我们将其命名为 odoo.conf,但您可以使用不同的名称:

sudo nano /etc/nginx/sites-available/odoo.conf

将以下内容粘贴到新的配置文件中,并确保将 your_domain_here 替换为您配置为指向 Odoo 服务器的域。这应该类似于 odoo.example.com,例如:

server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/odoo.access.log;
    error_log   /var/log/nginx/odoo.error.log;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Proto https;
      proxy_pass http://localhost:8069;
  }
}

目前此配置仅限 HTTP,因为我们将让 Certbot 在下一步中负责配置 TLS。配置文件的其余部分设置日志记录位置,然后将所有流量以及一些重要的代理标头传递到 http://localhost:8069(我们在以下位置启动的 Odoo 容器)前一步。

保存并关闭文件,然后通过将其链接到 /etc/nginx/sites-enabled/ 来启用配置:

sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

使用 nginx -t 验证配置文件语法是否正确:

sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,使用新配置重新加载 nginx 服务:

sudo systemctl reload nginx.service

您的 Odoo 站点现在应该可以通过纯 HTTP 访问。加载 http://your_domain_here (您可能需要点击安全警告),它将如下所示:

现在您的网站已通过 HTTP 启动并运行,是时候使用 Certbot 和 Let’s Encrypt 证书来保护连接了。您应该在执行 Odoo 基于网络的设置过程之前执行此操作。

第 4 步 — 安装 Certbot 并设置 TLS 证书

借助 Certbot 和 Let’s Encrypt 免费证书颁发机构,将 TLS 加密添加到您的 Odoo 应用程序只需两个命令。

首先,安装 Certbot 及其 Nginx 插件:

sudo apt install certbot python3-certbot-nginx

接下来,在 --nginx 模式下运行 certbot,并指定您在 Nginx server_name 配置指令中使用的相同域:

sudo certbot --nginx -d your_domain_here

系统会提示您同意 Let’s Encrypt 服务条款并输入电子邮件地址。

之后,系统会询问您是否要将所有 HTTP 流量重定向到 HTTPS。这取决于您,但通常建议这样做并且安全。

之后,Let’s Encrypt 将确认您的请求,Certbot 将下载您的证书:

Congratulations! You have successfully enabled https://odoo.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/odoo.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/odoo.example.com/privkey.pem
   Your cert will expire on 2022-05-09. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Certbot 将使用新的配置和证书自动重新加载 Nginx。在浏览器中重新加载您的网站,如果您选择重定向选项,它应该会自动切换到 HTTPS。

您的网站现在是安全的,可以安全地继续基于 Web 的设置步骤。

第 5 步 — 设置 Odoo

返回网络浏览器,重新加载页面。您现在应该通过安全的 https:// 连接打开 Odoo 的数据库配置页面。现在您可以安全地输入用户名和密码来完成安装过程。

您在此页面上填写的信息将告诉 Odoo 应用程序如何创建其 PostgreSQL 数据库以及有关默认管理用户的详细信息。

填写以下字段:

  • 数据库名称: odoo
  • 电子邮件:您的电子邮件地址
  • 密码:用于管理员登录的强大且唯一的密码
  • 演示数据:如果这是您第一次安装 odoo,请确保选中此选项

对于其余字段,默认值就很好。请务必记录您选择的电子邮件和密码值,因为您将来将使用它们登录 Odoo。

现在单击页面左下角的创建数据库按钮。 Odoo 可能需要一两分钟来创建其数据库表。该过程完成后,您将被重定向到 Odoo 应用 管理页面。

从这里您可以选择要安装和使用哪些 Odoo 模块来满足您的 ERP 需求。如果您想测试应用程序,请点击销售磁贴上的安装按钮。 Odoo 将安装该模块,然后将您重定向到您的个人讨论应用程序页面。

单击屏幕左上角的分段方形图标,然后在下拉选项列表中选择销售链接。

您将进入一个页面,该页面将指导您自定义数据、报价、订单以及可以试验的示例销售列表。

结论

在本教程中,您使用 Docker Compose 启动了 Odoo ERP 应用程序和 PostgreSQL 数据库,然后设置了 Nginx 反向代理并使用 Let’s Encrypt TLS 证书对其进行保护。

您现在已准备好开始使用提供的模块构建您的 ERP 网站。有关使用 Odoo 的更多信息,请参阅 Odoo 官方文档。

如果您想编写自己的自定义 Odoo 模块或自定义现有模块,开发人员文档是一个很好的起点。

©2015-2025 Norria support@norria.com