Hola amigos quiero compartir con ustedes una forma de instalar OdooERP 10 en Docker:

Asumimos que ya tenemos descargado la imagen de docker del ubuntu 16.06, sino vemos el siguiente artículos, donde vemos como descargar imagenes de docker.

Paso1: Listando imagenes de docker

vemos las imágenes que tenemos, para este ejemplo:

docker images

veremos algo similar a:

Paso2: Creación de contenedor

Creamos un contenedor a partir de la imagen de Ubuntu que tenemos:

javier@javier:~$ docker run -it -p 8069:8069 --name=odoo10  --restart=always -v /opt/extras:/opt/extras d355ed3537e9
root@54eb20e87916:/#

Donde:
-p: Indica que puerto que voy  liberar desde mi Servidor al Contenedor
–name: Le damos una nombre a nuestro contenedor
–restart: Hacemos que nuestro contenedor se cada vez que nuestro servidor se reinicie.
-v: Indicamos que carpetas vamos a compartir desde nuestro servidor real y el contenedor.
d355ed3537e9: Es el Id de la imagen apartir de la cual crearemos el contenedor.

Listamos los contenedores:

Paso3: Proceso de instalación de Postgresql

Actualizamos los repositorios:

root@54eb20e87916:/# apt-get update

Instalamos el siguiente paquete:

root@54eb20e87916:/# apt-get -y install locales
root@54eb20e87916:/# locale-gen es_PE.UTF-8 \
     && locale-gen es_PE.UTF-8 \
     && dpkg-reconfigure locales \
     && update-locale LANG=es_PE.UTF-8 \
     && update-locale LC_ALL=es_PE.UTF-8

Seleccionamos el numero 187 y 3 para el caso de Perú:

Locales to be generated: 187

Many packages in Debian use locales to display text in the correct language for the user. You can choose a default locale for the system from
the generated locales.

This will select the default language for the entire system. If this system is a multi-user system where not all users are able to speak the
default language, they will experience difficulties.

  1. None  2. C.UTF-8  3. es_PE.UTF-8
Default locale for the system environment: 3

Generating locales (this might take a while)...
  es_PE.UTF-8... done
Generation complete.
root@54eb20e87916:/# 

Instamos postgresql

root@54eb20e87916:/# apt-get --no-install-recommends --no-install-suggests install postgresql postgresql-server-dev-9.5 -y

Creamos un usuario llamado odoo para la base de datos:

root@54eb20e87916:/# su postgres 
postgres@54eb20e87916:/$ /etc/init.d/postgresql restart
 * Restarting PostgreSQL 9.5 database server                                                                                            [ OK ] 
postgres@54eb20e87916:/$ psql --command "CREATE USER odoo WITH SUPERUSER PASSWORD 'odoo';"
CREATE ROLE
postgres@54eb20e87916:/$ exit
exit
root@54eb20e87916:/#

Congiguración de postgresql

root@54eb20e87916:/# sed -i  "/# IPv6 local connections:/i host    all             all             0.0.0.0/0               md5" /etc/postgresql/9.5/main/pg_hba.conf && \
 sed  -i  "s/#listen_addresses = 'localhost'/listen_addresses = '*' \t/" /etc/postgresql/9.5/main/postgresql.conf
root@54eb20e87916:/# service postgresql restart
 * Restarting PostgreSQL 9.5 database server                                                                                            [ OK ]

Paso 4: Proceso de instalación de OdooERP

Instalamos paquetes zip y wget:

root@54eb20e87916:/# apt-get install -yq wget  unzip

Instalamos paquetes extras:

root@54eb20e87916:/# apt-get install -yq libxrender1  libfontconfig  libxext6  xz-utils

Ingresamo a la carpeta /tmp:

cd /tmp

Instalamos wkhtmltopdf:

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz && \
	tar Jvfx wkhtmltox-0.12.4_linux-generic-amd64.tar.xz && \
	cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/ && \
	cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/ && \
	cp wkhtmltox/bin/wkhtmltopdf /usr/bin/ && \
	cp wkhtmltox/bin/wkhtmltoimage /usr/bin/

Instalamos dependencias de Odoo:

apt-get install -yq python-pip \
	libcups2-dev \
	python-ldap \
	libxml2-dev \
	libffi-dev \
	libssl-dev \
	libxslt-dev \
	node-less \
	libsasl2-dev \
	libldap2-dev \
	libjpeg-dev

Creamos un usuario Odoo del sistema:

adduser --system --home=/opt/odoo --group odoo

Iniciamos sesión con el usuario odoo creado:

root@54eb20e87916:/# su - odoo -s /bin/bash 
odoo@54eb20e87916:/$

Descargamos Odoo

wget https://github.com/odoo/odoo/archive/10.0.zip && \
	unzip 10.0.zip && \
	rm 10.0.zip && \
	mv odoo-10.0 server && \
	chown -R odoo: server

Salimos del usuario de sesion de odoo en la terminal

odoo@54eb20e87916:~$ exit

Instalamos pip y las dependencias de python para OdooERP:

pip install --upgrade pip && pip install pytesseract pycups bs4 && pip install -r /opt/odoo/server/requirements.txt

Creamos una carpeta para el log de OdooERP

mkdir /var/log/odoo/ && \
	mkdir /etc/odoo/ && \
	chown odoo:root /var/log/odoo

Creando el archivo config de OdooERP:

cp /opt/odoo/server/debian/odoo.conf /etc/odoo/odoo.conf && \
	sed  -i  "s/db_password = False/db_password = odoo/" /etc/odoo/odoo.conf && \
	sed  -i  "s/addons_path = \/usr\/lib\/python2.7\/dist-packages\/odoo\/addons/addons_path = \/opt\/odoo\/server\/addons/" /etc/odoo/odoo.conf && \
	echo "logfile = /var/log/odoo/odoo-server.log" >> /etc/odoo/odoo.conf && \
	chown odoo: /etc/odoo/odoo.conf && \
	chmod 640 /etc/odoo/odoo.conf

Creando el archivo de inicio de OdooERP

cp /opt/odoo/server/debian/init /etc/init.d/odoo && \
	sed -i  "s/DAEMON=\/usr\/bin\/odoo/DAEMON=\/opt\/odoo\/server\/odoo-bin/" /etc/init.d/odoo && \
	chown root: /etc/init.d/odoo && \
	chmod 755 /etc/init.d/odoo

Paso 5: Instalando supervisord

Instalar supervisord para iniciar varios servicios en docker

apt-get install --allow-unauthenticated -y supervisor

Editamos el archivo:

nano /etc/supervisor/conf.d/supervisord.conf

y agregamos el siguiente contenido:

[supervisord]
nodaemon=true

[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)

[program:postgresql]
user=postgres
command=/usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf
autorestart=true

[program:odoo]
user=odoo
command=/opt/odoo/server/odoo-bin --config=/etc/odoo/odoo.conf
;stdout_logfile=/var/log/odoo/odoo.log
autorestart=true
redirect_stderr=true
redirect_stdout=true


[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

Eliminamos archivos temporales y descargados a fin de que nuestro contenedor sea lo mas liviano posible:

apt-get clean && \
	rm -rf /var/lib/apt/lists/* && \
	rm -rf /tmp/*

Ahora ejecutamos supervisord que nos permitirá iniciar odoo y postgresql:

root@54eb20e87916:/# /usr/bin/supervisord

Ahora podemos ir a un navegador web y probar:  http://IP_Server_or_domain.com:8069

 

Presionamos Ctrl + c para detener el servicio  y presionamos Ctrl + p +q para salir del contenedor

Paso 6: Creando una imagen de Docker a partir de nuestra contenedor odoo10

Creando un imagen a partir de nuestro contenedor odoo10

docker commit odoo10 masterodoo10

odoo10: Nombre de contenedor
masterodoo10: Nombre de la imagen a crearse

Listando imágenes de Docker:

javier@javier:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
masterodoo10        latest              381b43a0ba68        10 minutes ago      1.55GB

Paso 7: Creando un nuevo contenedor a partir de nuestra imagen masterodoo10 creada.

Creando el contenedor:

docker run -itd -p 8090:8069 --name=odoo10_v2 --restart=always -v /opt/extras:/opt/extras masterodoo10 /usr/bin/supervisord

Listado los contenedores:

javier@javier:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
3971541bf9d5        masterodoo10        "/usr/bin/supervisord"   52 seconds ago      Up 51 seconds       0.0.0.0:8090->8069/tcp   odoo10_v2

Ingresando al contenedor:

javier@javier:~$ docker exec -it odoo10_v2 bash 
root@24cdd406f850:/#

Estando dentro de nuestro contenedor podemos ver los procesos iniciados con ps -aux:

root@24cdd406f850:/# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.3  56520 18744 ?        Ss+  19:30   0:00 /usr/bin/python /usr/bin/supervisord
postgres    11  0.0  0.4 293420 24372 ?        S    19:30   0:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config
odoo        12  0.3  0.9 449328 54508 ?        Sl   19:30   0:00 python /opt/odoo/server/odoo-bin --config=/etc/odoo/odoo.conf
postgres    16  0.0  0.0 293420  3920 ?        Ss   19:30   0:00 postgres: checkpointer process   
postgres    17  0.0  0.0 293420  5504 ?        Ss   19:30   0:00 postgres: writer process   
postgres    18  0.0  0.0 293420  3920 ?        Ss   19:30   0:00 postgres: wal writer process   
postgres    19  0.0  0.0 293848  5108 ?        Ss   19:30   0:00 postgres: autovacuum launcher process   
postgres    20  0.0  0.0 148404  3100 ?        Ss   19:30   0:00 postgres: stats collector process   
root        25  0.0  0.0  18248  3180 ?        Ss   19:31   0:00 bash
root        38  0.0  0.0  34428  2860 ?        R+   19:33   0:00 ps -aux

Podemos ir a un navegador web y probar: http://IP_Server_or_domain.com:8090

Es todo, espero que les sirva de guia general.

Gracias.

 


Javier Salazar Carlos

Soy Ingeniero de Ingeniería de Sistemas, egresado de la Universidad Nacional del Callao, especialista en Tecnologías de la Información y de las Comunicaciones (TICs).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

code