miércoles, 13 de diciembre de 2023

ODOO (II) : Instalación con Docker

1. Creación de ficheros de configuración 

@see https://www.cybrosys.com/blog/how-to-install-odoo-16-in-docker

@see https://www.digitalocean.com/community/tutorials/how-to-install-odoo-on-ubuntu-20-04-with-docker

Crear la carpetas

mkdir -p ~/Mydocker/DockerFiles/odoo16
cd ~/Mydocker/DockerFiles/odoo16
mkdir config
mkdir custom-addons

En la carpeta "odoo"  crear fichero de variables de entorno y darle contenido. Ojo hay que tener en cuenta que los comentarios NO DEBEMOS METERLOS EN LA MISMA LÍNEA, tal y como indica nuestra fuente de información.


nano odoo16_pg13.env


#--------------------------------------------------------------------------
#1. postgresql env variables
#--------------------------------------------------------------------------

#[1] name of the PostgreSQL db that will be created or used by the PostgreSQL server.
POSTGRES_DB=postgres

#[2] db_user. SAME AS odoo.conf db_user 
POSTGRES_USER=odoo16 

#[3] db_password. SAME AS odoo.conf db_password 
POSTGRES_PASSWORD=MyPGPasword

#[4] storage location of DBs and data files of PSQL
#    SAME AS docker-compose.yml postgresql.volumes.db
PGDATA=/var/lib/postgresql/data/pgdata

#--------------------------------------------------------------------------
#2. odoo env variables
#--------------------------------------------------------------------------
#[5] Host. SAME AS odoo.conf db_host
HOST=postgresql

#[6] Odoo User
USER=odoo16

#[7] Odoo Password
PASSWORD=MyOdooPassword

Crear también en la carpeta "odoo" el fichero docker-compose.yml y darle el contenido

nano docker-compose.yml


version: '3.1'
services:
  odoo:
    image: odoo:16.0
    env_file: odoo16_pg13.env               # environment file
    depends_on:
      - postgresql
    ports:
      - "8069:8069"                         #port mapping(custom-port:8069)
    volumes:
      - data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./custom-addons:/odoo/extra-addons  #SAME AS odoo.conf addons_path
  postgresql:
    image: postgres:13
    env_file: odoo16_pg13.env               # environment file
    volumes:
      - db:/var/lib/postgresql/data/pgdata  ##SAME AS odoo16_pg13.env PGDAT [4]
volumes:
  data:
  db:

Crear en la carpeta "config" el fichero odoo.conf y añadir contenido

cd config
nano odoo.conf


[options]
admin_passwd = XLM28apCNAVcurL+qRnclKO3fBuSX34gijWeia6n
db_host = postgresql
db_user = odoo16
db_password = MyPGPassword
db_port = 5432
addons_path = /mnt/extra-addons

Habiendo conseguido el "admin_passwd" con el comando 

openssl rand -base64 30

2. Comprobaciones

Verificar que en el fichero odoo16_pg13.env:

  1. POSTGRES_DB=postgres
  2. POSTGRES_USER coincida con db_user del fichero odoo.conf
  3. POSTGRES_PASSWORD coincida con db_password del fichero odoo.conf
  4. PGDATA coincida con services.postgresql.volumes.db del fichero docker-compose.yml
  5. HOST coincida con services.postgresql del fichero docker-compose.yml

Verificar que en el fichero docker-compose.yml:

  1. services.odoo.env_file=odoo16_pg13.env
  2. services.odoo.env_file coincida con services.postgresql.env_file
  3. services.odoo.volumes.custom.add-ons coincida con addons_path del fichero odoo.conf

Verificar que en el fichero odoo.conf:

  1. db_host coincida con HOST del fichero odoo16_pg13.env
  2. db_user coincida con POSTGRES_USER del fichero odoo16_pg13.env
  3. db_password coincida con POSTGRES_PASSWORD del fichero odoo16_pg13.env
  4. addons_path coincida con services.odoo.volumes.custom.add-ons  del fichero docker-compose.yml

Ejecutamos "docker-compose" en la carpeta donde esta el "docker-compose.yml"

cd ..
docker-compose up

Y verificamos el log como que se ha creado bien. Pero este log nos va a dar información de como se corre Postgres y Odoo. Veamos

You can now start the database server using:
     pg_ctl -D /var/lib/pgsql/data/pgdata -l logfile start

/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
starting PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
listening on IPv4 address "0.0.0.0", port 5432
listening on IPv6 address "::", port 5432
listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
database system was shut down at 2023-12-19 07:42:24 UTC
database system is ready to accept connections

odoo: Odoo version 16.0-20231215 
odoo: Using configuration file at /etc/odoo/odoo.conf 
odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/.local/share/Odoo/addons/16.0', '/mnt/extra-addons'] 
odoo: database: odoo16@psql:5432 
odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf 
odoo.service.server: HTTP service (werkzeug) running on 19dfe0e2e288:8069 

3. Creación de la BD del sistema.

Y entramos en la máquina local y en el navegador hacemos


http://localhost:8069/



Y se rellenará el formulario con los siguientes valores

  1.  MasterPasword hay que darle el que le hemos indicado en la propiedad admin_passwd del fichero odoo.conf  
  2. Database Name se puede dar la base de datos a crear por ejemplo my-odoo16-db
  3. Email del administrador (que nos lo pedirá en la siguiente pantalla de login)
  4. Password del usuario odoo que hemos dado en el parámetro PASSWORD del fichero odoo16_pg13.env y que nos lo pedirá después en la pantalla de login
  5. Phone Number el que sea
  6. Language "Spanish"
  7. Country Spain
  8. Demo data opcional
Y le damos al botón de crear la BD

Luego nos muestra un formulario de login que hay que darle el email del administrador que le hemos dado, y el password que le hemos dado anteriormente (MyODOOPassword)

Una vez dadas las credenciales nos mostrará esta pantalla


4. Problemas que pueden aparecer

  1. Realizar las comprobaciones del punto 2
  2. Si previamente se ejecutó el docker-compose y falló hay que borrar los volúmenes docker creados. Si hacemos "docker volume ls" aparecen los volúmens "odoo16_data y odoo16_db" que son los que hay que eliminar con "docker volume rm"

5. Detalles del servidor

Si ejecutamos en un terminal

curl --head http://localhost:8069

Obtenemos

HTTP/1.0 303 SEE OTHER
Content-Type: text/html; charset=utf-8
Content-Length: 215
Location: http://localhost:8069/web
Set-Cookie: session_id=b8b6b264bb467072439cdb04c89dc234796c0e46; Expires=Tue, 26-Dec-2023 10:18:59 GMT; Max-Age=604800; HttpOnly; Path=/
Server: Werkzeug/1.0.1 Python/3.9.2
Date: Tue, 19 Dec 2023 10:18:59 GMT

Siendo  http://localhost:8069/web  la URL del instalador de Odoo













No hay comentarios :

Publicar un comentario