自从有了Docker再也不用烦恼环境问题了,发布的时候使用Docker固然方便快捷,开发的时候需要使用自己的addons,Docker可以将自己的Addons映射到容器里Odoo的指定addons目录下,这样开发Odoo顿时也很简便了。映射很简单,docker run 的时候,启用 ‘-v’ 命令来指定映射目录,具体格式同 '-p',如: -v 主机工作目录:容器内目录。
1. 启动Postgres容器
sudo docker run -d -v /home/odoo/odoo-dev/docker_odoo/pgdata/:/usr/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.4
2. 启动Odoo
sudo docker run -v /home/odoo/odoo-dev/docker_odoo/my_addons/:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo --db-filter=ODOO.*
这样就可以在本机的/home/odoo/odoo-dev/docker_odoo/my_addons/目录下写自己的模块了。
看hub.docker.com里的教程说可以自定义Odoo配置,大致方式跟映射工作目录是一样的,使用'-v'来映射,但实践发现同时映射配置和工作目录不工作,所以还是直接指定内联的odoo参数来使用自定义的配置,如以上启动Odoo命令里最后的 '--db-filter=ODOO.*',意思就是数据实例名只接受'ODOO'开头的。
补充:之前对于启动Odoo的时候既映射工作目录又要指定自定义配置不知道如何写命令的问题有了解决方法,使用环境变量ODOO_CONF, 使用'-e'来指定环境变量,命令如下:
sudo docker run -e ODOO_CONF=/home/odoo/odoo-dev/ODOO.conf -v /home/odoo/odoo-dev/docker_odoo/my_addons/:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo