Изучение развертывания Odoo 15 с помощью Docker Compose: подробное руководство

В этой статье блога мы рассмотрим различные методы развертывания Odoo 15 с помощью Docker Compose. Docker Compose — мощный инструмент, позволяющий определять и оркестровать многоконтейнерные приложения Docker. Мы предоставим примеры кода для каждого метода, чтобы помочь вам начать развертывание Odoo 15 в контейнерной среде.

Метод 1: базовое развертывание Odoo 15

Давайте начнем с базового развертывания Odoo 15 с помощью Docker Compose. Создайте новый файл с именем docker-compose.ymlи добавьте следующий код:

version: '3'
services:
  odoo:
    image: odoo:15
    ports:
      - 8069:8069
    depends_on:
      - db
  db:
    image: postgres:12
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo

Сохраните файл и выполните следующую команду, чтобы запустить контейнер Odoo 15:

docker-compose up -d

Метод 2: настройка конфигурации Odoo

Чтобы настроить конфигурацию Odoo, мы можем смонтировать файл конфигурации в контейнер. Создайте новый файл под названием odoo.confсо своей собственной конфигурацией:

[options]
addons_path = /mnt/extra-addons

Обновите файл docker-compose.yml, чтобы смонтировать файл конфигурации:

version: '3'
services:
  odoo:
    image: odoo:15
    ports:
      - 8069:8069
    depends_on:
      - db
    volumes:
      - ./odoo.conf:/etc/odoo.conf
      - ./addons:/mnt/extra-addons

Метод 3: использование Nginx в качестве обратного прокси

Чтобы повысить производительность и безопасность, мы можем использовать Nginx в качестве обратного прокси-сервера для Odoo. Добавьте следующий код в файл docker-compose.yml:

version: '3'
services:
  odoo:
    image: odoo:15
    expose:
      - 8069
    depends_on:
      - db
  db:
    image: postgres:12
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf

Создайте новый файл с именем nginx.confи добавьте следующую конфигурацию:

server {
    listen 80;
    server_name your_domain.com;
    location / {
        proxy_pass http://odoo:8069;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Метод 4. Масштабирование Odoo с помощью нескольких контейнеров

Если вам нужно горизонтально масштабировать Odoo для обработки возросшего трафика, вы можете использовать функцию масштабирования Docker Compose. Обновите файл docker-compose.ymlследующим образом:

version: '3'
services:
  odoo:
    image: odoo:15
    ports:
      - 8069
    depends_on:
      - db
    deploy:
      replicas: 3
  db:
    image: postgres:12
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo

Сохраните файл и выполните следующую команду для масштабирования контейнеров Odoo:

docker-compose up -d --scale odoo=3

В этой статье мы рассмотрели несколько методов развертывания Odoo 15 с помощью Docker Compose. Мы рассмотрели базовое развертывание, настройку конфигурации Odoo, использование Nginx в качестве обратного прокси-сервера и масштабирование Odoo с помощью нескольких контейнеров. Используя возможности Docker Compose, вы можете легко развертывать экземпляры Odoo 15 и управлять ими в контейнерной среде.