This is a fork of the Official Odoo repository on GitHub with some personal touch 😎
I've chosen to divide this project in two main categories:
- Odoo (versions 8/9/10)
- OpenERP (version 6.1)
See below each one for more details.
Built exactly upon the same Dockerfiles of the official ones, but with these main differences:
- Always providing the latest revision of Odoo available on the nightly build servers with a regular update (see "Update plan" below).
- Fixing this boring issue: "Error creating a new database".
Anyone who wants to use Odoo through Docker, but needs an higher update frequency than the official one.
I've scheduled an automatic weekly rebuild of the image (every Sunday). This should guarantee both a good update rate for users and a not excessive overload of Docker's servers.
All the necessary files are freely downloadable from my repo "odoo-docker" on GitHub, grouped by versions. You can simply clone the entire repository or download every single file you need and build your own image.
When it comes the time to update your image, please pay attention to disable the cache of Docker adding this flag --no-cache
like this:
$ docker build --no-cache -t my/odoo .
This is necessary, because the Dockerfile
is structured to always fetch the latest version from the nightly build servers, but the Dockerfile
itself remains unchanged!
So, if you don't disable the cache during the building process, Docker will not find any variation on the Dockerfile
and it will reuse the cache version, returning exactly the latest image you previously compiled.
Because this image is quite the same as the official one, if you need any help or any informations, please refer to the Official repositories at these links:
Based on the latest version available from GitHub, this aims to be a production ready OpenERP 6.1 image, powered up with all the main report engines:
- Aeroolib (latest version)
- WebKit (version 0.12.4)
Fist of all, the following images are required:
- PostgreSQL
- lcrea/libreoffice-headless (only for Aeroo reports)
$ docker run -d \
-e POSTGRES_USER=openerp \
-e POSTGRES_PASSWORD=openerp \
--name oe_db \
postgres:9-alpine
$ docker run -d --name oe_loffice lcrea/libreoffice-headless
Please refer to my Libreoffice Headless page on Docker Hub for any extra information about how to use this image.
$ docker run -d \
-e DB_NAME=openerp \
-e DB_PWD=openerp \
-e DB_USER=openerp \
--link oe_db:psql \
--link oe_loffice:libreoffice \
-p 8069:8069 \
--name openerp \
lcrea/odoo:6.1
The default configuration template is placed inside the image in this path:
/etc/openerp/openerp-server.conf
IMHO, the best way to use a custom config file is mounting it through the Docker parameter -v
like this:
$ docker run -d \
-v /path/to/your/openerp-server.conf:/etc/openerp/openerp-server.conf \
-e DB_NAME=openerp \
-e DB_PWD=openerp \
-e DB_USER=openerp \
--link oe_db:psql \
--link oe_loffice:libreoffice \
-p 8069:8069 \
--name openerp \
lcrea/odoo:6.1
This simplifies your image update process and give you enough flexibility to play with the configuration in real time.
These two native ports are exposed:
8069
8070
As the official Odoo image, the same two volumes are declared:
/mnt/extra-addons
: to mount or to store custom modules./var/lib/openerp/filestore
: to store the attachments generated inside OpenERP.
You can mount a folder from the filesystem full of modules with the -v
Docker parameter, like the config file:
$ docker run -d \
-v /path/to/your/modules/:/mnt/extra-addons \
-e DB_NAME=openerp \
-e DB_PWD=openerp \
-e DB_USER=openerp \
--link oe_db:psql \
--link oe_loffice:libreoffice \
-p 8069:8069 \
--name openerp \
lcrea/odoo:6.1
Alternatively, you can build another image based on this one with all the modules inside it, or:
- Create a Docker volume.
- Copy all the modules inside it.
- Mount the volume to the
/mnt/extra-addons
path.
The following variables are available with their relative default values:
DB_HOST
- default:
psql
- default:
DB_NAME
- default:
openerp
- default:
DB_PORT
- default:
5432
- default:
DB_PWD
- default:
openerp
- default:
DB_USER
- default:
openerp
- default:
They all are optional. Obviously, using different values is highly suggested.
Please, bear in mind that any values (i.e. passwords) passed through the environment variables can be read by anyone who has access to Docker, simply using docker top
or any alternative commands.
Like the official ones, simply pass the -u
flag (a shortcut for openerp-server -u
) and this automatically force OpenERP to reload all the modules, like this:
$ docker run \
-e DB_NAME=openerp \
-e DB_PWD=openerp \
-e DB_USER=openerp \
--link oe_db:psql \
-p 8069:8069 \
--name openerp \
lcrea/odoo:6.1 \
-u
The latest version available of the Aeroo Report modules are already included inside OpenERP image. Thus, all you need, it's just lunching a container of my image lcrea/libreoffice-headless as described above.
To configure OpenERP to send the print request to the LibreOffice container, simply follow these steps:
- Install
report_aeroo
andreport_aeroo_ooo
modules. - On the "Configure OpenOffice.org connection" window, set:
- host:
oe_loffice
(the name of the LibreOffice container) - port:
8100
(the port set on the LibreOffice container)
- host:
- Follow the steps on screen.
- You should see this message:
- Connection to the OpenOffice.org instance was successfully established and PDF conversion is working.
You're now ready to print your reports through Aeroo.
If you just want to run a test, you can additionally install the module report_aeroo_sample
, included in the image too.
For more information about Aeroo reports, news or support, please refer to the official page of Alistek Ltd.
To use WebKit, simply follow these steps:
- Install
report_webkit
module. - Check that your user as the
Extended View
flag active. - Go to Settings > Customization > Low Level Objects > System Parameters.
- Create a new record with:
- key:
webkit_path
- value:
/usr/local/bin/wkhtmltopdf
- key:
That's it!
After you configured WebKit, it's very important to set all the page margins (top, bottom, left, right) in the CSS section of the base report grater than zero, otherwise the system will produce PDF files with only one blank page.
For a more precise report, it's also better to set units in the font-size
CSS properties too. Unfortunately, the default base report provided is pretty messy.
The best way to enjoy a full working OpenERP environment is leveraging the power of Docker Compose. What's following is only an example of a simple (but fully working) environment.
version: '2'
services:
libreoffice:
image: lcrea/libreoffice-headless
psql:
image: postgres:9-alpine
environment:
- POSTGRES_PASSWORD=${PSQL_PASS}
- POSTGRES_USER=${PSQL_USER}
openerp:
image: lcrea/openerp:6.1
depends_on:
- libreoffice
- psql
environment:
- DB_NAME=${PSQL_DB}
- DB_PWD=${PSQL_PASS}
- DB_USER=${PSQL_USER}
links:
- libreoffice:libreoffice
- psql:psql
ports:
- "8069:8069"
volumes:
- /path/to/your/modules/:/mnt/extra-addons
I intentionally wanted to show an example of a Docker Compose file with environment values stored in an external .env
file, as described in the official Docker documentation. If you don't want to use this feature, simply substitute any ${ }
variable with their values.
If you want to pass environment values to the image through the .env
file, I included a simple debug
function that prints out on the standard output all the values.
This should helps you to check if your configuration is running as you expect.
$ docker run \
-e DB_NAME=${PSQL_DB} \
-e DB_PWD=${PSQL_PASS} \
-e DB_USER=${PSQL_USER} \
--link oe_db:psql \
-p 8069:8069 \
--name openerp \
lcrea/odoo:6.1 \
debug
OpenERP v6.1 is no longer supported, thus, an update of it is quite meaningless. However, this image is based on Jessie, the latest supported Debian distribution.
So, I've scheduled an automatic monthly rebuild of the image (on the 1st of every month, to be precise) to guarantee a regular update of all the basic libraries required.
This image is the result of part of one of my previous project, that I decided to share freely, hoping that could be helpful for anybody who's still working with this beautiful version of OpenERP (now Odoo) or just want to play with it.
If you have any issues, please report them to https://github.com/lcrea/odoo-docker/issues.
If you made any improvements, please open a pull request to https://github.com/lcrea/odoo-docker/pulls.
Luca Crea
https://www.linkedin.com/in/lucacrea