🎯 Objectius
- Entendre què és Docker i per què s’utilitza.
- Veure la diferència entre una instal·lació tradicional i una amb contenidors.
- Aprendre a engegar, parar i gestionar Odoo utilitzant Docker Compose.
- Investigar com es guarden les dades i addons quan Odoo treballa dins contenidors.
- Preparar-vos per crear i testejar mòduls propis en un entorn professional.
📘 Conceptes previs
🔹 Què és Docker?
Docker permet crear contenidors, que són com “mini ordinadors” aïllats dins del teu sistema. Cada contenidor té:
- El seu propi sistema de fitxers.
- La seva configuració.
- La seva aplicació (Odoo, Postgres, etc.).
Això evita problemes típics com “a mi no m’arrenca”, “em falta una dependència”, o “la versió de Python no coincideix”.
🔹 Què és Docker Compose?
Docker Compose és una eina que permet posar en marxa diversos contenidors alhora. Per exemple:
- 1 contenidor per a Odoo.
- 1 contenidor per a Postgres.
Tot això s’especifica en un sol fitxer: docker-compose.yml.
🧪 Activitat 1 — Instal·lar Docker i Odoo dsd Plantilla Isard
1️⃣ Desde Isard, una vegada creada la màquina, obrir la terminal...
cd Escriptori/
bash scriptfinal.sh
2️⃣ Tancar la terminal i Obrir una nova terminal
cd Escriptori/odoo-docker/
sudo docker compose up -d
2️⃣ Obrir Odoo al navegador
http://localhost:8069
🧪 Activitat 2 — Gestionar contenidors
1️⃣ Veure tots els contenidors en execució
sudo docker ps
Apareixen els contenidors odoo i postgres?
Quins ports utilitzen?
2️⃣ Aturar Odoo
sudo docker compose stop
3️⃣ Tornar-lo a arrencar
sudo docker compose start
Es perden les dades (clients, configuració…)? Per què creus que no?
🧪 Activitat 3 — Volums i persistència
Docker utilitza volums per guardar dades fora del contenidor, de manera que si el contenidor s’elimina, les dades es mantinguin.
1️⃣ Llistar volums
sudo docker volume ls
Quins volums ha creat l’script? A què es dedica cadascun (per exemple, web i base de dades)?
2️⃣ Inspeccionar un volum
sudo docker volume inspect odoo-docker_odoo-db-data
On es troben físicament les dades de Postgres a l’ordinador?
🧪 Activitat 4 — Afegir un mòdul personalitzat
1️⃣ Crear la carpeta del mòdul
mkdir -p addons/escola
2️⃣ Tornar a arrencar els contenidors
sudo docker compose restart
3️⃣ Actualitzar la llista d’aplicacions a Odoo
- Accediu a Odoo com a administrador.
- Aneu a Settings i abaix de tot
- Activate the developer mode
- Feu clic a Update Apps List (Actualitzar llista d’aplicacions).
- Busqueu el mòdul
escolai no hi ha res
4️⃣ Crear el mòdul escola amb scaffold dins Docker
Assegura’t que els contenidors estan en marxa:
cd ~/Escriptori/odoo-docker
sudo docker compose up -d
Mira el nom del contenidor d’Odoo:
sudo docker ps
Dona permisos a la carpeta addons
sudo chmod -R 777 addons
Et sortirà una cosa semblant a:
CONTAINER ID NAME ...
abc123... odoo-docker-web-1 ...
Fixa’t en el NAME (normalment odoo-docker-web-1).
Entra dins del contenidor d’Odoo:
sudo docker exec -it odoo-docker-web-1 bash
(Si el teu nom és diferent, posa el que surti a docker ps.)
Dins del contenidor, crea el mòdul amb scaffold a la ruta dels addons extra:
odoo scaffold escola /mnt/extra-addons
Això crearà una estructura com:
/mnt/extra-addons/escola/__manifest__.py
/mnt/extra-addons/escola/__init__.py
/mnt/extra-addons/escola/models/...
/mnt/extra-addons/escola/views/...
Surt del contenidor:
exit
Reinicia Odoo
sudo docker compose restart
Torna a Odoo (navegador), activa el Developer Mode (com ja has fet),
ves a Apps → Update Apps List, actualitza i després cerca
escola.
Ara sí que t’hauria d’aparèixer el mòdul Escola a la llista d’Apps.
On ha de mirar Odoo els mòduls personalitzats? Quin valor té
el paràmetre addons_path? (Mira el fitxer config/odoo.conf.)
🧪 Activitat 5 — Entrar dins els contenidors
1️⃣ Entrar al contenidor d’Odoo
sudo docker exec -it odoo-docker-web-1 bash
Això obrirà una terminal dins del contenidor d’Odoo.
Quin directori dins el contenidor correspon a la carpeta
addons/ del teu host?
🧪 Activitat 6 — Què passa si eliminem un contenidor?
1️⃣ Eliminar contenidors
docker compose down
2️⃣ Tornar-los a crear
docker compose up -d
S’han perdut les dades? Per què? Quin paper juguen els volums en aquesta situació?
🎓 Exercici Final (avaluable)
-
Escriu un resum de 5–10 línies explicant:
- Què és Docker.
- Què és Docker Compose.
- Per què són útils per Odoo.
- Què milloren en comparació amb una instal·lació tradicional.
-
Dibuixa un petit esquema (en paper o digital) on aparegui:
- El contenidor d’Odoo.
- El contenidor de Postgres.
- Els volums de dades.
- La connexió entre tots dos.
-
Explica amb les teves paraules:
Per què és ideal utilitzar Docker quan desenvolupes mòduls Odoo?