
В этой статье мы расскажем вам о пошаговом процессе установки Odoo с помощью Docker на систему Linux. Мы рассмотрим следующие темы:
- Предварительные условия
- Установка Docker
- Извлечение образа Odoo из Docker
- Создание сети Docker
- Создание контейнера PostgreSQL
- Создание контейнера Odoo
- Доступ к экземпляру Odoo
- Настройка Odoo
- Обновление Odoo
- Использование Docker Compose для установки Odoo
1. Предварительные условия
Прежде чем начать, убедитесь, что у вас есть следующие предварительные условия:
- Система Linux (в данном руководстве в качестве примера используется Ubuntu 20.04 LTS, но шаги должны быть аналогичными для других дистрибутивов Linux)
- Некорневой пользователь с привилегиями sudo
- Базовое понимание Docker и командной строки Linux
2. Установка Docker
Docker — это популярная платформа контейнеризации, которая позволяет упаковывать приложения и их зависимости в изолированные контейнеры. Если вы еще не установили Docker на свою систему Linux, выполните следующие действия:
- Обновите индекс пакетов:
$ sudo apt-get update
- Установите необходимые пакеты, чтобы разрешить
apt
использовать хранилище по HTTPS:
$ sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- Добавьте официальный GPG-ключ Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Добавьте репозиторий Docker в список источников вашей системы:
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- Снова обновите индекс пакетов:
$ sudo apt-get update
- Установите последнюю версию Docker Engine и containerd:
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- Убедитесь, что Docker установлен правильно, выполнив следующую команду:
$ sudo docker run hello-world
Если все настроено правильно, вы должны увидеть сообщение об успешной установке Docker.
3. Извлечение образа Odoo из Docker
Odoo предоставляет официальные образы Docker, которые вы можете использовать для запуска Odoo в контейнерной среде. Чтобы извлечь последний образ Odoo, выполните следующую команду:
$ sudo docker pull odoo:latest
Эта команда загрузит последнюю версию образа Odoo Docker из официального репозитория Docker Hub. Если вы предпочитаете использовать определенную версию Odoo, вы можете заменить latest
на нужный тег версии (например, odoo:14.0
).
4. Создание сети Docker
Сети Docker позволяют контейнерам взаимодействовать друг с другом. Мы создадим новую сеть для наших контейнеров Odoo и PostgreSQL:
$ sudo docker network create odoo-network
Эта команда создает новую сеть Docker с именем odoo-network
.
5. Создание контейнера PostgreSQL
Для хранения данных Odoo требуется база данных PostgreSQL. Мы создадим контейнер PostgreSQL и подключим его к серверу odoo-network
, который мы только что создали:
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
Давайте разберем эту команду:
docker run
: Запускает новый контейнер из образа-d
: Запускает контейнер в отсоединенном режиме (в фоновом режиме)-e POSTGRES_USER=odoo
: Устанавливает пользователя PostgreSQL наodoo
-e POSTGRES_PASSWORD=odoo
: Устанавливает пароль PostgreSQL наodoo
-e POSTGRES_DB=odoo
: Устанавливает имя начальной базы данных наodoo
--network=odoo-network
: Подключает контейнер кodoo-network
--name db
: Присваивает имяdb
контейнеруpostgres:13
: Использует официальный образ PostgreSQL 13 Docker
Эта команда создает новый контейнер PostgreSQL с именем db
, подключенный к odoo-network
с базой данных с именем odoo
и учетными данными odoo/odoo
.
6. Создание контейнера Odoo
Теперь, когда у нас есть контейнер PostgreSQL, мы можем создать контейнер Odoo и связать его с контейнером PostgreSQL:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -t odoo
Давайте разберем эту команду:
docker run
: Запускает новый контейнер из образа-p 8069:8069
: Сопоставляет порт хоста 8069 с портом контейнера 8069 (порт Odoo по умолчанию)--name odoo
: Присваивает имяodoo
контейнеру--network=odoo-network
: Подключает контейнер кodoo-network
-e HOST=db
: Устанавливает хост PostgreSQL наdb
(имя нашего контейнера PostgreSQL)-e USER=odoo
: Устанавливает пользователя PostgreSQL наodoo
-e PASSWORD=odoo
: Устанавливает пароль PostgreSQL наodoo
--link db:db
: Связываетdb
контейнер сodoo
контейнер с псевдонимомdb
-t odoo
: Указывает образ Odoo Docker для использования
Эта команда создает новый контейнер Odoo с именем odoo
, подключенный к odoo-network
и связан с контейнером PostgreSQL db
. Он также сопоставляет порт 8069 хоста с портом 8069 контейнера, что позволяет вам получить доступ к экземпляру Odoo через веб-браузер.
7. Доступ к экземпляру Odoo
После того как контейнер Odoo запущен, вы можете получить доступ к экземпляру Odoo, открыв веб-браузер и перейдя по адресу http://your_server_ip:8069
. Заменить your_server_ip
на IP-адрес вашего сервера Linux.
Если все настроено правильно, вы должны увидеть экран приветствия Odoo. Здесь вы можете создать новую базу данных или использовать существующую odoo
базу данных, которую мы создали ранее.
8. Настройка Odoo
Хотя конфигурация по умолчанию подходит для большинства случаев использования, вы можете захотеть настроить некоторые аспекты вашей установки Odoo. Odoo предоставляет файл конфигурации под названием odoo.conf
, который позволяет вам изменять различные настройки.
Чтобы получить доступ к odoo.conf
файлу, вам нужно создать новый том и подключить его к контейнеру Odoo. Вот как это можно сделать:
- Создайте новый каталог для хранения файлов конфигурации Odoo:
$ sudo mkdir -p /opt/odoo/config
- Создайте новый
odoo.conf
файл в/opt/odoo/config
директории:
$ sudo nano /opt/odoo/config/odoo.conf
- Добавьте нужные вам параметры конфигурации в
odoo.conf
файл. Например, чтобы изменить язык и часовой пояс по умолчанию:
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_password
db_host = db
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /mnt/extra-addons
; Language
default_lang = fr_FR
; Timezone
timezone = Europe/Paris
- Сохраните и закройте файл
odoo.conf
файл. - Остановите существующий контейнер Odoo:
$ sudo docker stop odoo
- Удалите существующий контейнер Odoo:
$ sudo docker rm odoo
- Запустите новый контейнер Odoo с подключенным томом конфигурации:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo
В этой команде мы добавили -v /opt/odoo/config:/etc/odoo
опцию для монтирования /opt/odoo/config
каталог с хоста на /etc/odoo
каталог внутри контейнера. Это позволит Odoo прочитать odoo.conf
файл из смонтированного тома.
После выполнения этой команды ваш экземпляр Odoo должен быть сконфигурирован с настройками, указанными в поле odoo.conf
файле.
9. Обновление Odoo
Когда выходит новая версия Odoo, вам нужно обновить образ Docker и контейнеры, чтобы воспользоваться последними функциями и обновлениями безопасности. Вот как вы можете обновить свою установку Odoo:
- Извлеките последний образ Odoo Docker:
$ sudo docker pull odoo:latest
- Остановите существующий контейнер Odoo:
$ sudo docker stop odoo
- Удалите существующий контейнер Odoo:
$ sudo docker rm odoo
- Запустите новый контейнер Odoo с обновленным образом:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest
Эта команда похожа на ту, которую мы использовали для создания начального контейнера Odoo, но с параметром latest
в конце, чтобы указать, что мы хотим использовать последнюю версию образа Odoo Docker.
После выполнения этой команды ваш экземпляр Odoo должен быть обновлен до последней версии.
10. Использование Docker Compose для установки Odoo
Хотя вы можете запускать команды Docker вручную для установки Odoo и его зависимостей, использование Docker Compose может упростить этот процесс, определяя и управляя многоконтейнерными приложениями Docker. Docker Compose позволяет указать конфигурацию для всех необходимых контейнеров в одном YAML-файле, что упрощает развертывание и управление установкой Odoo.
Вот как вы можете использовать Docker Compose для установки Odoo:
Установите Docker Compose
- Установите Docker Compose, если вы этого еще не сделали:
$ sudo apt-get install docker-compose
- Создайте новый каталог для вашего проекта Odoo и перейдите в него:
$ mkdir odoo-project
$ cd odoo-project
- Создайте новый файл с именем
docker-compose.yml
вodoo-project
каталоге:
$ nano docker-compose.yml
- Добавьте следующее содержимое в каталог
docker-compose.yml
файл:
version: '3'
services:
web:
image: odoo:latest
depends_on:
- db
ports:
- "8069:8069"
volumes:
- ./config:/etc/odoo
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo
db:
image: postgres:13
environment:
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=odoo
- POSTGRES_DB=odoo
volumes:
- odoo-db-data:/var/lib/postgresql/data
volumes:
odoo-db-data:
Это docker-compose.yml
файл определяет две службы: web
и db
. Сайт web
сервис — это приложение Odoo, а db
служба — это база данных PostgreSQL.
Сайт web
служба определяет следующее:
image
: Использует последний образ Odoo Dockerdepends_on
: Указывает, чтоweb
служба зависит отdb
сервисports
: Сопоставляет порт 8069 хоста с портом 8069 контейнера.volumes
: Монтирует./config
каталог с хоста на/etc/odoo
каталог внутри контейнераenvironment
: Устанавливает переменные окружения для контейнера Odoo, включая хост базы данных, пользователя и пароль
The db
служба определяет следующее:
image
: Использует образ PostgreSQL 13 Dockerenvironment
: Устанавливает переменные окружения для контейнера PostgreSQL, включая пользователя, пароль и имя базы данныхvolumes
: Монтирует именованный томodoo-db-data
для хранения данных PostgreSQL
- Сохраните и закройте файл
docker-compose.yml
файл. - Создайте
config
каталог для хранения файлов конфигурации Odoo:
$ mkdir config
- Создайте новый
odoo.conf
файл вconfig
и добавьте нужные вам параметры конфигурации (подробнее см. раздел «Настройка Odoo» в основной статье). - Запустите контейнеры Odoo и PostgreSQL с помощью Docker Compose:
$ docker-compose up -d
Эта команда создаст и запустит контейнеры, определенные в файле docker-compose.yml
файле. . -d
флаг запускает контейнеры в отсоединенном режиме (в фоновом режиме).
- Получите доступ к экземпляру Odoo, открыв веб-браузер и перейдя по адресу
http://your_server_ip:8069
.
Использование Docker Compose упрощает процесс настройки и управления несколькими контейнерами для вашей установки Odoo. Сайт docker-compose.yml
файл служит единым источником истины для конфигурации вашего приложения, что упрощает обслуживание и развертывание вашей установки Odoo в различных средах.
Если вам нужно остановить или удалить контейнеры, вы можете воспользоваться следующими командами Docker Compose:
# Stop the containers
$ docker-compose stop
# Remove the containers
$ docker-compose down
Docker Compose обеспечивает более структурированный и масштабируемый подход к развертыванию и управлению Odoo и его зависимостями с помощью контейнеров Docker.
Устранение неполадок
Если в процессе установки или настройки возникнут какие-либо проблемы, вот несколько общих советов по устранению неполадок:
Проверка журналов контейнеров
Если ваш экземпляр Odoo работает не так, как ожидалось, вы можете проверить журналы контейнера для получения дополнительной информации. Чтобы просмотреть журналы для контейнера Odoo, выполните команду:
$ sudo docker logs odoo
Эта команда отобразит журналы для odoo
контейнера, что поможет вам выявить и диагностировать любые проблемы.
Проверка состояния контейнера
Вы можете проверить состояние своих контейнеров Docker, выполнив команду:
$ sudo docker ps -a
Эта команда выведет список всех контейнеров в вашей системе, а также их статус (запущен, завершен и т.д.). Если контейнер не запущен, можно попробовать запустить его следующей командой:
$ sudo docker start container_name
Заменить container_name
на имя контейнера, который вы хотите запустить (например, odoo
или db
).
Восстановление контейнеров
Если вы внесли изменения в конфигурацию Odoo или столкнулись с проблемами в работе существующих контейнеров, вам может понадобиться их перестроить. Выполните следующие шаги, чтобы перестроить контейнеры Odoo и PostgreSQL:
- Остановите существующие контейнеры:
$ sudo docker stop odoo db
- Удалить существующие контейнеры:
$ sudo docker rm odoo db
- Удалите существующую сеть Docker:
$ sudo docker network rm odoo-network
- Создайте новую сеть Docker:
$ sudo docker network create odoo-network
- Создайте новый контейнер PostgreSQL:
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
- Создайте новый контейнер Odoo:
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest
Этот процесс создаст новые контейнеры с последней конфигурацией и всеми внесенными вами изменениями.
Заключение
После выполнения этого руководства вы должны быть в состоянии успешно установить и настроить Odoo с помощью Docker на вашей системе Linux. Docker предоставляет удобный способ управления и развертывания Odoo, обеспечивая согласованность сред на разных системах и упрощая процесс установки.
Не забывайте обращаться к официальной документации Odoo и форумам сообщества, если у вас возникнут какие-либо проблемы или вопросы по настройке или кастомизации вашей установки Odoo.