Docker är det smidigaste sättet att köra Odoo, oavsett om det är utveckling eller produktion. Officiella Docker-imagen fungerar, men för en riktig setup behöver du anpassa den.
docker-compose.yml
Två tjänster: Odoo och PostgreSQL. Odoo-imagen baseras på odoo:18. PostgreSQL 17 för databasen. Volumes för data-persistens: PostgreSQL-data och Odoo filestore. Exponera port 8069 (eller häng den bakom Nginx).
Custom Dockerfile
Basera på officiella imagen. Installera extra Python-paket med pip (requests, beautifulsoup4, Pillow, etc). Kopiera in din odoo.conf. Mounta din addons-mapp till /mnt/extra-addons. Det ger dig en reproducerbar miljö som alla i teamet kan köra identiskt.
Konfiguration
odoo.conf: addons_path, db_host (postgresql-servicens namn i docker-compose), admin_passwd, workers (0 för utveckling, 4+ för produktion). Limit_memory_hard och limit_memory_soft förhindrar att en enskild process äter allt minne.
Produktion
Nginx framför Odoo som reverse proxy. SSL med Let's Encrypt. Workers satt till minst CPU-antal gånger 2 plus 1. Longpolling-port (8072) bakom en separat upstream i Nginx. Gzip aktiverat. Static files serverade direkt av Nginx istället för genom Odoo.
Backup
PostgreSQL-dump via pg_dump i cron. Filestore kopieras separat (det är en ren filmapp). Automatisera till extern lagring (S3, Backblaze B2). Testa restore kvartalsvis.
Uppgradering
Byt Docker-tag i Dockerfile (odoo:17 till odoo:18). Kör odoo --update all mot databasen. Testa i staging. Det är enklare med Docker än med en traditionell installation.