Saltar a contenido

Instalar Odoo 12 en un container Docker

En este tutorial se crearán 2 containers:

  • 1 container para la base de datos
  • 1 container para ODOO

Además para garantizar la persistencia de los datos, se usarán volumenes de datos Docker, uno para que Postgres guarde la base de datos y otros dos para que odoo guarde ficheros adjuntos, módulos extra, datos de sesión etc.

Configuración de red Docker

Creamos una red Docker para conectar nuestra base de datos y Odoo

docker network create --driver bridge sgw-odoo-nw

Creamos el container postgresql 11.1

docker run -d --name sgw-db \
--env POSTGRES_USER=odoo --env POSTGRES_PASSWORD=sgw-clave-secret \
--env POSTGRES_DB=postgres \
--network=sgw-odoo-nw --mount source=sgw-db-data,target=/var/lib/postgresql/data \
library/postgres:11.1

Se chequea con este comando el log del container y debe decir algo como «LOG: database system is ready to accept connections»

docker logs sgw-db

Container y volúmenes para ODOO

docker volume create --name sgw-odoo-data
docker volume create --name sgw-odoo-extra-addons

docker run -d --name sgw-odoo --link sgw-db:db -p 8069:8069 \
--network sgw-odoo-nw \
--mount source=sgw-odoo-data,target=/var/lib/odoo \
--mount source=sgw-odoo-extra-addons,target=/mnt/extra-addons \
--env POSTGRES_PASSWORD=sgw-clave-secret \
veivaa/odoo:12.0

En lugar de la imagen veivaa/odoo:12.0 puede usarse también la imagen oficial disponible en library/odoo:12.0.

Se chequean los logs y debe decir algo como «2018-10-07 16:37:55,491 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 95d90feba5bf:8069»

docker logs unkkuri-odoo

Acceder a Odoo desde

http://localhost:8069

Correr y detener containers

Ver los containers corriendo actualmente

docker ps

Ver todos los containers

docker ps -a

Detener un container

docker stop sgw-odoo

Correr container

docker start sgw-odoo

tras reiniciar el ordenador o Docker, tendremos los containers detenidos por lo que habrá que arrancarlos con:

docker start sgw-db
docker start sgw-odoo

Puede establecerse a "Always" la política restart para evitar este comportamiento.

Actualizar Odoo

docker stop sgw-odoo
docker rm sgw-odoo
docker pull veivaa/odoo:12.0
docker run -d --name sgw-odoo --link sgw-db:db -p 8069:8069 \
--network sgw-odoo-nw \
--mount source=sgw-odoo-data,target=/var/lib/odoo \
--mount source=sgw-odoo-extra-addons,target=/mnt/extra-addons \
--env POSTGRES_PASSWORD=sgw-clave-secret \
veivaa/odoo:12.0

Borrar todo

docker stop sgw-odoo
docker rm sgw-odoo
docker volume rm sgw-odoo-data
docker volume rm sgw-odoo-extra-addons

docker stop sgw-db
docker rm sgw-db
docker volume rm sgw-db-data

docker network rm sgw-odoo-nw

Backup/Restore a dockerized PostgreSQL database

http://stackoverflow.com/questions/24718706/ddg#29913462

Backup your databases

docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

Restore your databases

cat your_dump.sql | docker exec -i your-db-container psql -U postgres


Última actualización: 2021-11-10