lunes, 11 de diciembre de 2023

ODOO (I) : Fallos de instalación en Docker. Systemd NO Funciona en un contenedor que se arranca con /bin/bash

NO FUNCIONA!!!

1. Instalación del servidor (Debian) en docker

Vamos a optar por instalarlo con docker, para ello descargamos la imagen con 

docker pull debian

Y ejecutamos dicha imagen en modo interactivo

docker run -it debian

Si por algun motivo, se para el contenedor o ya existía el contenedor de debin,  y querenos arrancarlo, con "docker ps -a" detectaríamos el contenedor y con "docker start 751a44e759f1" lo arrancaríamos y con "docker exec -it 751a44e759f1 /bin/bash" ejecutaríamos una sesión de comandos.

Instalamos paquetes que hacen falta, pues la versión de docker viene muy pelada. 

apt update

apt install sudo wget curl nano network-manager iputils-ping net-tools \
     ufw software-properties-common dirmngr apt-transport-https gnupg2 \
     ca-certificates lsb-release debian-archive-keyring unzip \
     build-essential git python3-pip python3-dev python3-venv \
     python3-wheel libfreetype6-dev libxml2-dev libzip-dev libsasl2-dev \
     python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev \
     libxslt1-dev libldap2-dev libtiff5-dev libopenjp2-7-dev

Veamos la IP del servidor en el fichero "etc/hosts" que nos indica que l nombre del servidor es el mismo que el del contenedor (751a44e759f1) y su IP estática es 172.17.0.3

127.0.0.1	localhost
::1	        localhost ip6-localhost ip6-loopback
fe00::0	        ip6-localnet
ff00::0	        ip6-mcastprefix
ff02::1	        ip6-allnodes
ff02::2	        ip6-allrouters
172.17.0.3	751a44e759f1

Vamos a añadir el usuario odoo 

adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Odoo user' \
   --group \
   --home /opt/odoo \
odoo


2. Instalación de wkhtmltopdf

Ejecutamos

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb

sudo apt install ./wkhtmltox*bookworm_amd64.deb

3. Instalar postgres

Ejecutamos

apt install postgresql

Vemos el estado del servicio postgresql

sudo /etc/init.d/postgresql status

Si está apagado lo arrancamos

sudo /etc/init.d/postgresql restart

Comprobamos con "sudo /etc/init.d/postgresql status" que está "online" y añadimos el usuario odoo a postgres:

su - postgres -c "createuser -s odoo"

4. Instalar Odoo

Existen muchas opciones de instalación de Odoo en Debian 12. Aquí se instalará Odoocon un entorno virtual de Phyton, cosa que permite tener múltiples instancias de Odoo en el servidor sin compartir los paquetes. Se instalará Odoo usando el usuario "odoo" creado anteriormente. Para ello, nos identificaremos como usuario "odoo" y se procederá a la instalación.

su - odoo

Descargamos Odoo a la carpeta  "/opt/odoo/odoo16"

git clone https://www.github.com/odoo/odoo \ 
--depth 1 --branch 16.0 odoo16

Creamos un entorno virtual Phyton en la carpeta " /opt/odoo/odoo16-venv"

python3 -m venv odoo16-venv

Activamos dicho entorno virtual (ejecuando la shell activate mediante el comando source) cosa que nos cambiara el "display" a "(odoo16-venv) odoo@rh:~$

source odoo16-venv/bin/activate

Instalamos Odoo 

pip3 install wheel
pip3 install -r odoo16/requirements.txt

Creamos una carpeta de "addons" específica para esta instancia de Odoo

mkdir /opt/odoo/odoo16/custom-addons/

Desactivamos el entorno virtual , y salimos del usuario "odoo" y regresamos al usuario root para crear la configuración de Odoo

deactivate && exit

Creamos la configuración de Odoo en el fichero "etc/odoo16.conf"

nano /etc/odoo16.conf 

Y copiamos este contenido

[options]
admin_passwd = m0d1fyth15
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo16/addons,/opt/odoo/odoo16/custom-addons
xmlrpc_port = 8069

Guardamos y salimos del editor

Creamos el fichero de servicio (en systemd)

nano /etc/systemd/system/odoo16.service

Y copiamos este contendido

[Unit]
Description=Odoo16
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo16
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo16-venv/bin/python3 /opt/odoo/odoo16/odoo-bin -c /etc/odoo16.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Recargamos el "systemd"y ejecutamos Odoo. Y sorpresa!. No arranca el servicio. NO FUNCIONA systemd cuando arrancamos con docker y /bin/bash

En caso que hubiera funcionado se haría

systemctl daemon-reload

systemctl start odoo16

Comprobamos a ver si está ejecutando Odoo

systemctl status odoo16

Abrimos el browser en la dirección que nos sale en el etc/hosts

http://172.17.0.3 

y deberíamos ver la página Odoo







No hay comentarios :

Publicar un comentario