Sign inSign up

vnvsa/odoo-ee

By vnvsa

Updated 6 months ago

Image
0

940

vnvsa/odoo-ee repository overview

vnvsa/odoo-ee

Container image for running Odoo Enterprise Edition.

How it works

On startup, the container:

  1. Creates a Python virtual environment in /var/odoo/.venv
  2. Installs Odoo and its dependencies from the source mounted at /var/www/odoo/odoo/
  3. Runs a module update (odoo -u all --stop-after-init) using /etc/odoo/odoo.update.conf
  4. Starts two supervised processes via supervisord:
    • odoo_web -- HTTP server (uses /etc/odoo/odoo.web.conf)
    • odoo_cron -- Cron worker (uses /etc/odoo/odoo.cron.conf)

Volumes

Container pathPurpose
/var/www/odooProject root (Odoo source + custom addons)
/etc/odooConfiguration files (odoo.update.conf, odoo.web.conf, odoo.cron.conf)
/var/lib/odooOdoo data directory (filestore, sessions)
/mnt/extra-addonsCustom addons path
/var/odoo/.venvPython virtual environment (persist to avoid reinstalling on every restart)

Configuration files

Three configuration files are expected in /etc/odoo:

  • odoo.update.conf -- Used at startup to run module updates. Should have http_enable = False and workers = 0.
  • odoo.web.conf -- Used by the web process. Set workers > 0 and max_cron_threads = 0.
  • odoo.cron.conf -- Used by the cron process. Set workers = 0, max_cron_threads > 0, and http_enable = False.

All three files need the standard database connection settings (db_host, db_port, db_user, db_password, db_name).

Example docker-compose.yml

services:
  odoo:
    image: vnvsa/odoo-ee:3.12-bookworm
    depends_on:
      - odoo_db
    ports:
      - "8069:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./my_custom_module:/mnt/extra-addons/my_custom_module
      - ./odoo:/var/www/odoo
      - odoo-venv:/var/odoo/.venv
  odoo_db:
    image: postgres:18
    shm_size: 128mb
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
    volumes:
      - odoo-db-data:/var/lib/postgresql
volumes:
  odoo-web-data:
  odoo-venv:
  odoo-db-data:

The Odoo source code should be placed in the project root (e.g. as a symlink or extracted archive) so that it is available at /var/www/odoo/odoo/ inside the container.

Logs

Logs are written to /var/log/hosting/odoo/:

  • odoo.update.log -- Module update output (startup)
  • odoo.web.log -- Web server logs
  • odoo.cron.log -- Cron worker logs

Supervisord itself outputs to stdout/stderr (visible via docker logs).

Ports

PortService
8069Odoo HTTP

Tag summary

Content type

Image

Digest

sha256:48abb45c0

Size

500.8 MB

Last updated

6 months ago

docker pull vnvsa/odoo-ee:3.12-bookworm