Instalación de Odoo en un Docker Ubuntu
Las herramientas de virtualización son una gran ayuda en el mundo de las tecnologias de información, ya que encapsulan los servicios, librerias y herramientas necesarias para la ejecución de programas, aplicaciones, servicios, etc. al mismo tiempo que lo hacen portable e independiente del Sistema Operativo, anterior a docker podiamos encontrar hypervisor como una de las mas conocidas, en la actualidad docker tiene ventajas sobre otras y se ha vuelto una de las mas importantes, en el mundo de Odoo desde la versión 10 y ahora versión 11 es casi un estandar para los desarrolladores, ya que nos permite tener diferentes instancias o proyectos de forma independiente con la posibilidad de poder llevar este contenedor al entorno de Producción de un cliente de forma facil y rapida, homologando la versión de Python, la versión de sus librerias y las aplicaciones.
En Odoo podemos encontrar el Docker oficial desde Github o el repositorio oficial de Docker:
- https://github.com/odoo/docker
- https://hub.docker.com/_/odoo/
La versión oficial contiene una serie de instrucciones para poder hacer nuestra instalación y quede lista para ponerse en marcha para nuestros desarrollos o en nuestro Cliente para su uso final.
En este Post quiero enseñar una maner alternativa a la oficial, usando la imagen (docker) de Ubuntu y montando nuestro Contenedor para instalar Odoo, Postgres y las librerias requeridas para la ejecución de Odoo.
1. Instalación de Docker
Lo mas importante es tener instalado nuestro docker en el Servidor o Maquina donde vamos a trabajar, en mi caso utilizo Ubuntu 17.04 y los pasos para instalador docker son:
Actualizar los Repositorios:
sudo apt-get update
Instalar las librerias necesarias:
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
Añadir el repositorio Docker :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
Debemos crear una cuenta en la Pagina Oficial https://hub.docker.com/
Como paso final de la instalación debemos hacer un loggin en nuestro Sistema Operativo:
docker login
2. Descarga de Imagen Ubuntu
En este ejemplo usare Ubuntu 16.04 como mi imagen base para ello ejecuto en terminal
sudo docker pull ubuntu:16.04
Podremos visualizar nuestras Imagenes con el comando:
sudo docker images
3. Creación de nuestro Contenedor
Crearemos un contenedor con las siguientes caracteristicas:
Es importante indicar la versión de la Imagen descargada para ello al final indicamos ubuntu:16.04
(docker run -it -p 22 -p 8069:8069 -v /opt/odoo:/home/odoo --name odoo_11_dev ubuntu:16.04)
El resultado es una consolta interactiva, en la cual podemos ejecutar comandos.
Si cerramos la terminal el docker seguira corriendo y ya no existe necesidad de ejecutar nuevamente el comando anterior, ahora debemos ejecutar el comando para listar los contenededores activos:
Si queremos ver todos los que hemos creado:
Para poder ingresar al contenedor activo:
Si no vemos la terminal pasados unos segundos es importante dar un enter mas o dos.
Instalamos Python 3 para Odoo 11:
Instalamos Pip 3:
Instalamos algunas dependencias de Odoo:
Creamos un Usuario del Sistema para Gestionar Odoo
Cambiamos la contraseña del usuario:
Instalamos Git
Descargamos Odoo, dentro de la carpeta /opt
Cambiamos los permisos de la carpeta hacia el usuario odoo:
Instalamos las dependencias de odoo
Instalacion de Wkhtmltopdf:
Instalamos Postgres:
Iniciamos Postgres:
Creamos el usuario de Postgres para Odoo:
Contraseña: odoo
Instalamos un Editor de Textos, por ejemplo nano:
Cambiamos al usuario odoo:
Ejecutamos Odoo y creamos nuestro Archivo de configuración:
Editamos el Archivo de Configuración y modificamos los Parametros de Base de Datos:
Una ves Editado, guardamos con el Comando Ctrl + O
Volvemos a ejecutar sin el parametro -s
Y listo, en nuestro navegador podemos acceder a Odoo:
Ante cualquier error de fuentes podemos consultar:
https://poncesoft.blogspot.mx/2016/05/solucion-al-error-bundle.html
- Con el puerto 8069 abierto para acceder desde el anfitrion
- Con el Puerto 22 abierto
- Con una Terminal Interactiva
- Con un Directorio Compartido entre huesped (docker) y anfitrion (SO)
docker run -it -p 22 -p 8069:8069 -v /opt/odoo:/home/odoo --name odoo_11_dev ubuntu:16.04
Es importante indicar la versión de la Imagen descargada para ello al final indicamos ubuntu:16.04
(docker run -it -p 22 -p 8069:8069 -v /opt/odoo:/home/odoo --name odoo_11_dev ubuntu:16.04)
El resultado es una consolta interactiva, en la cual podemos ejecutar comandos.
Si cerramos la terminal el docker seguira corriendo y ya no existe necesidad de ejecutar nuevamente el comando anterior, ahora debemos ejecutar el comando para listar los contenededores activos:
docker ps
Si queremos ver todos los que hemos creado:
docker ps -a
Para poder ingresar al contenedor activo:
docker attach odoo_11_dev
Si no vemos la terminal pasados unos segundos es importante dar un enter mas o dos.
4. Instalación de Aplicaciones
Una ves que tenemos nuestro Contenedor Ubuntu 16.04, vamos a instalar las aplicaciones y librerias.
Primero debemos hacer un update a los repositorios:
apt-get update
apt-get install python3 -y
Instalamos Pip 3:
apt-get install python3-pip -y
Instalamos algunas dependencias de Odoo:
apt-get install python3-dev libxml2-dev libxslt1-dev libevent-dev \ libsasl2-dev libldap2-dev libpq-dev libpng12-dev libjpeg-dev \ poppler-utils node-less node-clean-css python3-pypdf2 npm python3-babel \
python3-decorator python3-docutils -y
Creamos un Usuario del Sistema para Gestionar Odoo
useradd -d /home/odoo -s /bin/bash odoo
Cambiamos la contraseña del usuario:
passwd odoo
Instalamos Git
apt-get install git
Descargamos Odoo, dentro de la carpeta /opt
cd /opt
git clone https://github.com/odoo/odoo --branch 11.0
Cambiamos los permisos de la carpeta hacia el usuario odoo:
chown odoo.odoo /opt/odoo -R
Instalamos las dependencias de odoo
pip3 install /opt/odoo/requirements.txt -r
pip3 install /opt/odoo/doc/requirements.txt -r
Instalacion de Wkhtmltopdf:
apt-get install wget -y
wget https://nightly.odoo.com/extra/wkhtmltox-0.12.1.2_linux-jessie-amd64.deb dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb
apt-get -f install
Instalamos Postgres:
apt-get install postgresql
Iniciamos Postgres:
service postgresql start
Creamos el usuario de Postgres para Odoo:
su postgres createuser -s -P -e odoo
Contraseña: odoo
Instalamos un Editor de Textos, por ejemplo nano:
apt-get install nano
Cambiamos al usuario odoo:
su odoo
Ejecutamos Odoo y creamos nuestro Archivo de configuración:
python3 /opt/odoo/odoo-bin -c odoo_server.conf -s
Editamos el Archivo de Configuración y modificamos los Parametros de Base de Datos:
nano odoo_server.conf
db_host = localhost db_password = odoo db_port = 5432 db_sslmode = prefer db_template = template1 db_user = odoo
Una ves Editado, guardamos con el Comando Ctrl + O
Volvemos a ejecutar sin el parametro -s
python3 /opt/odoo/odoo-bin -c odoo_server.conf
Y listo, en nuestro navegador podemos acceder a Odoo:
Ante cualquier error de fuentes podemos consultar:
https://poncesoft.blogspot.mx/2016/05/solucion-al-error-bundle.html
muy bueno..
ResponderBorrarExcelente! Muchísimas gracias! Me ha resultado sumamente útil su publicación.
ResponderBorrarMe gustaría comentar algunos detalles que tuve que tener en cuenta durante el proceso:
1) En la sección "Instalamos algunas dependencias de Odoo" el comando está dividido en dos secciones de HTML. Lo ejecuté en un solo comando:
"apt-get install python3-dev libxml2-dev libxslt1-dev libevent-dev \
libsasl2-dev libldap2-dev libpq-dev libpng12-dev libjpeg-dev \
poppler-utils node-less node-clean-css python3-pypdf2 npm python3-babel \
python3-decorator python3-docutils -y"
2) En la sección "Cambiamos los permisos de la carpeta hacia el usuario odoo" ejecuto el comando:
"chown odoo.odoo /home/odoo -R"
3) En la sección "Instalamos las dependencias de odoo" tuve que cambiar el lugar del switch "-r", los comandos que ejecuté fueron:
"pip3 install -r /opt/odoo/requirements.txt
pip3 install -r /opt/odoo/doc/requirements.txt"
4) Antes de ejecutar la sección "Instalacion de Wkhtmltopdf" tuve que ejecutar los siguientes comandos:
"apt-get install xfonts-75dpi
apt-get install fontconfig
apt-get remove libjpeg62
wget http://ftp.br.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_amd64.deb"
dpkg -i libjpeg62-turbo_1.5.1-2_amd64.deb
dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb"
y luego recomiendo ejecutar los archivos de instalación bajados:
"rm libjpeg62-turbo_1.5.1-2_amd64.deb
rm wkhtmltox-0.12.1.2_linux-jessie-amd64.deb"
5) En la sección "Creamos el usuario de Postgres para Odoo" terminé con el comando
"exit"
para volver al usuario root y poder instalar el editor nano.
6) Antes de ejecutar el comando de la seccion "Ejecutamos Odoo y creamos nuestro Archivo de configuración" recomiendo asegurarnos que estamos en el directorio correcto:
"cd /opt/odoo"
y aclarar que luego de ejecutar "python3 /opt/odoo/odoo-bin -c odoo_server.conf -s" debemos volver a la terminal con CTRL-C para poder editar el archivo de configuracion
Nuevamente MUCHAS GRACIAS por su post, y espero que mis comentarios le puedan resultar útiles a alguien.
After you reboot the server or stop the docker container with the command:
ResponderBorrar"docker stop odoo_11_dev"
You have to run the following commands to restart odoo:
"docker start odoo_11_dev
docker attach odoo_11_dev
su postgres
service postgresql start
su odoo
cd /opt/odoo
python3 /opt/odoo/odoo-bin -c odoo_server.conf"
Open the browser and to to the url "http://:8069"
After filling the fields on the first web page, during the creation of the database I had these errors:
ResponderBorrarERROR None odoo.sql_db: bad query: b'CREATE DATABASE "odoo_test" ENCODING \'unicode\' TEMPLATE "template1" '
ERROR None odoo.http: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
I solved it stopping odoo, switching back to the postgres user and then in psql console executed the following sequence of commands:
update pg_database set datallowconn = TRUE where datname = 'template0';
\c template0
update pg_database set datistemplate = FALSE where datname = 'template1';
drop database template1;
create database template1 with template = template0 encoding = 'UTF8';
update pg_database set datistemplate = TRUE where datname = 'template1';
\c template1
update pg_database set datallowconn = FALSE where datname = 'template0';
Remember press Ctrl-D to quit from psql.
I started odoo again and The database could be created without error.
en donde dice: Instalacion de Wkhtmltopdf:
ResponderBorrarTuve que instalar otro:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-wheezy-amd64.deb
sudo dpkg -i wkhtmltox-0.12.1_linux-wheezy-amd64.deb
https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb
ResponderBorrarenlace actualizado ...
un saludo