Odoo
  • Introduction
  • Dokku
  • Tuning
  • PostgreSQL
  • Функциональные возможности
    • Склад
  • Fields
  • Odoo installation
  • Интерфейс
  • Ссылки
  • Тестирование
Powered by GitBook
On this page
  • Видео ролики
  • Установка Dokku
  • Установка плагина Postgres
  • Создание приложения
  • Клонирование приложения
  • Изменение CMD
  • Сборка Odoo с python 2
  • Добавление параметров сборки или запуска

Dokku

PreviousIntroductionNextTuning

Last updated 7 years ago

Видео ролики

Установка Dokku

Качаем скипт установки:

curl -L https://raw.githubusercontent.com/dokku/dokku/v0.11.2/bootstrap.sh | bash

Установка плагина Postgres

Сайт плагина -

dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres

Создаем инстанс постгреса последней версии:

POSTGRES_CUSTOM_ENV="POSTGRES_USER=odoo" dokku postgres:create odoo_db

Обязательно указываем имя для базы, ибо в Odoo вшита проверка на пользователя, и Оду откажется работать с ошибкой:

Using the database user 'postgres' is a security risk, aborting.

Также можно установить другую версию Postgres, а также выключить ssl:

DISABLE_SSL=1 POSTGRES_IMAGE_VERSION="9-alpine" POSTGRES_CUSTOM_ENV="POSTGRES_USER=odoo" dokku postgres:create odoo_db

Получить информацию о базе:

root@mars:~# dokku postgres:info odoo_db
=====> Container Information
       Config dir:          /var/lib/dokku/services/postgres/odoo_db/config
       Data dir:            /var/lib/dokku/services/postgres/odoo_db/data
       Dsn:                 postgres://postgres:cb8dc005ece9f88ceeb6e72d37b3fcb4@dokku-postgres-odoo-db:5432/odoo_db
       Exposed ports:       -
       Id:                  87a4b10d2dbb68f49789cb61cf6f245c947383031afa3d7fe0bae5de7511529c
       Internal ip:         172.17.0.2
       Links:               odoo_test
       Service root:        /var/lib/dokku/services/postgres/odoo_db
       Status:              running
       Version:             postgres:9.6.4

В переменной Dsn содержится пароль. Так как мы при создании базы указали POSTGRES_USER, этот пароль одновременно для пользователя postgres и odoo. Также в Dsn содержится адрес хоста базы данных.

Создание приложения

Создаем приложение:

dokku apps:create odoo_test

Далее надо прилинковать сервис постгреса к приложению:

dokku postgres:link odoo_db myapp

После этого необходимо сконфигурировать переменные окружения:

dokku config:set odoo_test ODOO_ARG_NO_DATABASE_LIST= ODOO_ARG_WITHOUT_DEMO=all ODOO_ARG_DATABASE=my_app_name ODOO_ARG_DB_HOST=dokku-postgres-odoo-db ODOO_ARG_DB_PASSWORD=cb8dc005ece9f88ceeb6e72d37b3fcb4 ODOO_ARG_WORKERS=4

После этого можно делать деплой приложения, взяв образец отсюда -

Клонирование приложения

dokku apps:clone --skip-deploy init_app mydomain.app.com

Флаг --skip-deploy нужен для того, чтобы переопределить конфигурацию нового приложения.

 dokku config:set --no-restart odoo_app ODOO_ARG_DATABASE=comlib_md ODOO_ARG_DB_HOST= ODOO_ARG_DB_PASSWORD=4bee98115d1959d73fba415c7da3c79b ODOO_ARG_WORKERS=4 ODOO_ARG_WITHOUT_DEMO=all ODOO_ARG_NO_DATABASE_LIST=
-----> Setting config vars
       ODOO_ARG_DB_PASSWORD:       4bee98115d1959d73fba415c7da3c79b
       ODOO_ARG_WORKERS:           4
       ODOO_ARG_WITHOUT_DEMO:      all
       ODOO_ARG_NO_DATABASE_LIST:
       ODOO_ARG_DATABASE:          comlib_md
root@mars:/tmp#

Изменение CMD

dokku config:set app DOKKU_DOCKERFILE_START_CMD="odoo -u all"

Сборка Odoo с python 2

Odoo версии 8 использует odoo.py вместо odoo, поэтому необходимо переопределить ODOO_CMD:

dokku docker-options:add app build '--build-arg ODOO_CMD=odoo.py'

Добавление параметров сборки или запуска

В папке с приложение можно указать Docker параметры в файлах DOCKER_OPTIONS_RUN (или DOCKER_OPTIONS_BUILD или DOCKER_OPTIONS_DEPLOY), например:

--link container_name:alias
-v /host/path:/container/path
-v /another/container/path

Либо сделать тоже самое через dokku docker-options, например:

# Mount a host volume in a Docker container: "-v /host/path:/container/path"
dokku docker-options:add node-js-app deploy "-v /var/log/node-js-app:/app/logs"
dokku docker-options:add node-js-app run "-v /var/log/node-js-app:/app/logs"

Разница в стадиях:

  • build - контейнер, в котором все собирается;

  • deploy- контейнер, в котором запускается приложение;

  • run- контейнер, который запускается при вызове dokku run.

https://youtu.be/FcW1PoQqDS8
https://youtu.be/INCRql1MjEw
https://github.com/dokku/dokku-postgres