🎯 Objectius

📘 Conceptes previs

🔹 Què és Docker?

Docker permet crear contenidors, que són com “mini ordinadors” aïllats dins del teu sistema. Cada contenidor té:

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:

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
📝 Pregunta 2:

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
📝 Pregunta 3:

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
📝 Pregunta 4:

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
📝 Pregunta 5:

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

  1. Accediu a Odoo com a administrador.
  2. Aneu a Settings i abaix de tot
  3. Activate the developer mode
  4. Feu clic a Update Apps List (Actualitzar llista d’aplicacions).
  5. Busqueu el mòdul escola i 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.

📝 Pregunta 6:

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.

📝 Pregunta 7:

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
📝 Pregunta 8:

S’han perdut les dades? Per què? Quin paper juguen els volums en aquesta situació?

🎓 Exercici Final (avaluable)

  1. 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.
  2. 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.
  3. Explica amb les teves paraules:
    Per què és ideal utilitzar Docker quan desenvolupes mòduls Odoo?