Pragmatic – Leading provider of open source business applications OpenERP, Ruby on Rails, Node.js, Talend, jaspersoft  – Pragmatic
Beyonce Adams

Odoo 9 Docker Deployment

Pragmatic has made the Odoo Docker deployment approach feasible for all implementation in a 4 step approach.

  1. Create Docker Container
  2. Create Odoo dockerfile with all necessary packages and updates.
  3. Push to Docker Hub
  4. Pull on the Client Docker Machine (Client System).

Developer Machine/ Production machine – to have docker installed

Basic Image to created there are two ways to do this

  1. a.Pull an existing OS/ Base App/ Development environment from Docker Hub
  2. b.Create own Docker Image using Dockerfile

Create Container

Run containers: docker run
Build images manually: docker commit
Use Dockerfiles for building images
Now Access Odoo from Container at local host :8069! Pragmatic Odoo from Docker is Ready!!!


  • Update your apt sources
  • Install the kernel packages required by Ubuntu Version for aufs storage driver

Optional configurations

  • Create a docker group – docker daemon binds to a Unix socket instead of a TCP port.
  • Adjust memory and swap accounting – prevent unwanted Warning messages from OS Kernel, enable memory and swap accounting on your system.
  • Enable UFW forwarding – Docker to run when UFW (Uncomplicated Firewall) is enabled; where default set of rules denies all incoming traffic, make forwarding policy with consideration to TLS.
  • Configure a DNS server for use by Docker – To avoid the DNS resolver Warning, you can specify a DNS server for use by Docker containers.
  • Configure Docker to start on boot – installation automatically configures upstart to start the docker daemon on boot until 14.04, the later versions need to have autostart explicitly given

How to use Pragmatic Odoo 9 Docker Image

This image requires a running PostgreSQL server.

Start a PostgreSQL server

$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo –name db postgres

This command will pull the official postgres image and run its container so you have your postgres server up and running, that we will use to connect with odoo.

Start an Odoo instance

$ docker run -p 8069:8069 –name odoo –link db:db -t pragtechsoft/odoo

This command will pull the pragmatic odoo image from docker hub and run its container for you, which means now you have your odoo server running on your machine. The alias of the container running Postgres must be db for Odoo to be able to connect to the Postgres server.

How to access my odoo

Once you run pragtechsoft/odoo container using the above command, now you can access your odoo using the link http://localhost:8069 in browser.

Stop and restart an Odoo instance

$ docker stop odoo
$ docker start -a odoo
Stop and restart a PostgreSQL server When a PostgreSQL server is restarted, the Odoo instances linked to that server must be restarted as well because the server address has changed and the link is thus broken.
Restarting a PostgreSQL server does not affect the created databases.

Run Odoo with a custom configuration

The default configuration file for the server (located at /etc/openerp-server.conf) can be overriden at startup using volumes. Suppose you have a custom configuration at /path/to/config/openerp-server.conf, then
$ docker run -v /path/to/config:/etc/odoo -p –name odoo –link db:db -t pragtechsoft/odoo
Please use this configuration template to write your custom configuration as we already set some arguments for running Odoo inside a Docker container.
You can also directly specify Odoo arguments inline. Those arguments must be given after the keyword — in the command-line, as follows
$ docker run -p 8069:8069 –name odoo –link db:db -t pragtechsoft/odoo — –db-filter=odoo_db_.*

Mount custom addons

You can mount your own Odoo addons within the Odoo container, at /mnt/extra-addons
$ docker run -v /path/to/addons:/mnt/extra-addons -p –name odoo –link db:db -t pragtechsoft/odoo

Run multiple Odoo instances

$ docker run -p 8070:8069 –name odoo2 –link db:db -t pragtechsoft/odoo $ docker run -p 8071:8069 –name odoo3 –link db:db -t pragtechsoft/odoo

Answers to some Quick FAQs

How to upgrade this image

Suppose you created a database from an Odoo instance named old-odoo, and you want to access this database from a new Odoo instance named new-odoo, e.g. because you’ve just downloaded a newer Odoo image.
By default, Odoo uses a filestore (located at /opt/odoo/.local/share/Odoo/filestore/) for attachments. You should restore this filestore in your new Odoo instance by running
$ docker run –volumes-from old-odoo -p 8070:8069 –name new-odoo –link db:db -t pragtechsoft/odoo

How to get Support?

If you are facing any problems with this image and need professional support, you can contact us at sales at For more information about us visit

Is this instance configured for Httpworkers and Odoo Performance Optimization?

​No, not configured for httpworkers as httpworkers depends on number of cpu of system, contact sales at, we can optimize the performance of Odoo for your system.

The postgres instance that is used; Is it official instance?

Yes, Pragmatic has used official postgres image, Postgres V 9.5. This image includes EXPOSE 5432 (the postgres port), so standard container linking will make it automatically available to the linked containers.​ The Pragmatic Docker for postgres always searches for the latest image of Postgre and updates it.


Leave a Reply

Subscribe to Blog via Email.

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Comments

Related Posts