Подготовка к разработке addons для Odoo 17.0 с исользованием VSCode и Docker.
|
21 August 2024
Разработка модулей (addons) для Odoo 17.0 может показаться сложной задачей, особенно для начинающих разработчиков. Однако, с правильными инструментами и настройками этот процесс можно значительно упростить. В этой статье мы подробно рассмотрим, как настроить рабочую среду для разработки модулей для Odoo 17.0 с использованием Visual Studio Code (VSCode) и Docker.
Почему выбирают Odoo?
Odoo — это мощная платформа для управления бизнесом, которая предлагает широкий спектр функционала, от CRM до ERP систем. Благодаря своей модульной архитектуре, Odoo позволяет легко расширять функциональность, создавая собственные модули.
Предварительные требования
Перед началом работы убедитесь, что у вас установлены следующие инструменты:
> docker compose up --build -d
> docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
odoo-db-1 postgres "docker-entrypoint.s…" db 5 weeks ago Up 8 seconds 0.0.0.0:5444->5432/tcp, :::5444->5432/tcp
odoo-web-1 odoo:17.0 "/entrypoint.sh odoo…" web 5 weeks ago Up 7 seconds 0.0.0.0:8069->8069/tcp, :::8069->8069/tcp, 8071-8072/tcp
выдача комнды docker compose ps говорит о том что фукционируют два контейнера, одинс с кодами Odoo, второй с базой данных postgres.
Папки и файлы
Обратите внимение что были созданы дирректории ./addons, ./confog, ./odoo-data и ./odoo-db-data - эти дирректории отражение того что находтся в контейнерах, их содержимое будет сохраннено после остновки и переиспользовано при последующих запусках контейнеров Docker:
В выдче команды docker compose ps можно заметить запись по открытых сетевых портах и их переадресации внутрь контейнера 0.0.0.0:8069->8069/tcp.
Введи в барузер адрес http://0.0.0.0:8069 или http://localhost:8069
Более подробно о первичных натсройках Odoo 17.0 после ее установки смотрите в статье Первый запуск Odoo 17.0 и ее базовые настройки.
Подготовка окружения дря разработки Odoo addons
Права доступа к данным Odoo в контейнере
В предыдущей секции команда docker compose up –build создала несколько дирректорий ялвяющиеся отражением того что содержится в контейнерах. Правлиа создания директорий описаны в файле docker-compose.yml:
./addons - дирректория для размащения папок addons которые буду разрабатываться с нуля;
./config - отражает содержимое папки /etc/odoo в контейнере и содержит минимум один файл odoo.conf;
./odoo-db-data - содержит фалы posgres создаванне и изменяемые в конейнере db.
Необзодимо изменить владельца этих паопок для возможности вносить в них изменения:
В дирректории ./config должен находтися файл odoo.conf, если его нет, создайте. Убедить что в файле определена насройка addons_path которая определят откуда в контейнере odoo будут браться ваши разрабатывеамые addons. Именно для этого в docker-compose.yml определен раздел - ./addons:/mnt/extra-addons. В файле odoo.conf возможно наличие других паремтров которые Odoo добавляет полсе первого запуска:
Использование VSCode и первый addons для odoo 17.0
VSCode предлагает потрясающий плагин которые позволяет разрабатывать код прямо в контейнере докер. Для этого необходимо установить соотвевующий plugin в вашем VSCode.
Разработка в Docker позволяет иметь все системные настройки так, как это будет при развертывании в production, при этом, если вы создаете или редактируете файлы в дирректориях которые определены docker-compose.yml, то все изменеия будут отражены в ваши локальные папки и будут всегда доступны вам и контейнеру при следущем запуске.
Запустите контейнеры определенные в docker-compose.yml
Это большая, обзорная, статья на тему, что из себя представляет Odoo, которая состоит из бесплатных модулей связанных друг с другом, в этой статье вы узанаете о минимальном наборе модулей необходимых для автоматизации бизнеса. Узнайте больше о самых важных модулях Odoo прямо сейчас!
С радостью сообщаем о выходе новой версии Odoo 18, которая приносит с собой множество улучшений и новых функций, направленных на оптимизацию бизнес-процессов и повышение эффективности работы. Вот основные преимущества обновленной платформы: