2015-08-05 8 views
0

Я пытаюсь использовать докер для разработки модулей odoo. У меня есть следующий файл docker-compose.ymlРазработка Odoo на Docker

db: 
    image: postgres 
    environment: 
    POSTGRES_USER: odoo 
    POSTGRES_PASSWORD: odoo 
    volumes: 
    - data:/var/lib/postgresql/data/ 

odoo: 
    image: odoo 
    links: 
    - db:db 
    ports: 
    - "127.0.0.1:8069:8069" 
    volumes: 
    - extra-addons:/mnt/extra-addons 
    command: -- --update=tutorial 

Модуль содержит только __openerp__.py файл, но odoo не показывает изменения, внесенные в него, даже с --update=tutorial опцией

{ 
    'name': "tutorial", 

    'summary': """Hello world!!""", 

    'description': """ 
     This is the new description 
    """, 

    'author': "ybouhjira", 
    'website': "ybouhjira.com", 

    'category': 'Technical Settings', 
    'version': '0.1', 
    'depends': ["base"], 
} 

этот файл в папку с именем учебник, расположенный в extra-addons, и я попытался остановить и запустить контейнеры, даже удаляя и воссоздавая их.

ответ

0

Для создания нового модуля вам понадобится еще один файл файла ОДО-файла __openerp__.py, вам также нужен файл дескриптора Python __init__.py как минимальная структура, конечно, вам нужно больше двух файлов, но это минимально для того, чтобы существовал модуль. После создания модуля в существующей базе данных вам необходимо позвонить в . Обновить модуль Список при настройке, чтобы загрузить модуль правильно, и тогда вы сможете его установить.

+0

можно увидеть модуль в odoo без '__init __. Py', но когда я редактировать' __openerp__.py '- путем изменения описания, например, - он не изменяется в оду, даже если я перезапущу сервер –

1

Как shodowsjedi уже сказал, вам нужно создать файл __init__.py (см модульную структуру: https://www.odoo.com/documentation/8.0/howtos/backend.html#module-structure).

Кроме того, проверьте разрешения в своих контейнерах-оболочках, ваши файлы в томе odoo будут иметь uid и gid вашей системы (хост) в контейнере (которые могут быть связаны с другим пользователем). Чтобы проверить это, вы можете использовать Docker Exec:

docker exec docker_odoo_1 ls -la /mnt/extra-addons 

Если вы не знаете имя Docker вашего контейнера вы можете получить его с помощью:

docker-compose ps 

Последний и, пожалуй, самое важное, проверить журналы odoo с помощью:

docker-compose logs 

и обновить модуль на странице конфигурации Odoo (или при запуске сервера)

0

Вы должны добавить собственный конфигурационный файл. первый в докер-compose.yml монтирования/и т.д./odoo

odoo: 
image: odoo 
links: 
    - db:db 
ports: 
    - "127.0.0.1:8069:8069" 
volumes: 
    - extra-addons:/mnt/extra-addons 
    - ./config:/etc/odoo 

Затем создайте "odoo.conf" в ./Config и добавить параметры конфигурации, как показано ниже.

[options] 
addons_path = /mnt/extra-addons,/usr/lib/python2.7/dist- packages/odoo/addons 
data_dir = /var/lib/odoo 
auto_reload = True 

рестарт odoo, перейти в режим отладки, то apps-> Список модуль обновления

Если до сих пор не работает, то проверьте права доступа к каталогам аддонов и проверить, если группа и другие могут читать их

0

Учтите, что описание, значки и версия внутри манифеста не всегда меняются постоянно. Попытайтесь переместить f5 в свой браузер, но это не так важно, когда вы развиваетесь.

Помимо наличия как минимум манифеста и init .py файл, если вы используете компоновку docker, я рекомендую иметь скрипт для установки, удаления и воссоздания вашего контейнера.

./doeall

кошка doeall

#!/bin/sh 
docker-compose down 
docker-compose rm 
docker-compose up -d 
docker-compose logs -f 

Для развивающихся целей, также удобно иметь дб в разделенном Докер-compose.yml, так что вы можете использовать один и тот же дб контейнер для нескольких одуховые установки.

Посмотрите на мой докер-сочинить для мульти-экземпляров здесь:

https://github.com/bmya/odoo-docker-compose/tree/multi

в любом случае, если вы все еще хотите использовать Postgres в БД вместе в одной и той же Докер-Compose файл, у вас есть в этой другой ветви:

https://github.com/bmya/odoo-docker-compose/blob/uni/docker-compose.yml

Опять же, что касается вашего модуля: важная вещь, когда вы пишете код является: когда йо u что-то изменить в методах в коде python, просто перезапустите сервер. Когда вы меняете что-то в модели внутри python, перезагрузите сервер и переустановите. При изменении файлов данных (представлений, данных и т. Д.) Просто переустановите модуль, чтобы обновить файлы данных.

Смежные вопросы