Para utilizarlo primero podemos hacer un docker build
docker build -t="$USER/odoo" .
Por ejemplo, nosotros utilizamos como tagname skennedy/odoo.
Luego podemos lanzarlo de la siguiente manera:
docker run -ti -rm -v $PWD/build:/opt/buildout -v /opt/odoo/odoo8:/opt/buildout/parts/odoo --name odootest7 skennedy/odoo
Se utiliza el link con otro container. Hay varias imagenes de PostgreSQL en Docker Hub. Nosotros elegimos utilizar sameersbn/postgresql:9.1-1. Allí podemos ver las instrucciones correspondientes. Los pasos que nosotros utilizamos fueron los siguientes:
docker pull sameersbn/postgres:9.1-1
sudo mkdir -p /opt/postgresql_docker/data
sudo chown -R username:users /opt/postgresql_docker/
docker run -d --name postgresql -e 'DB_USER=odoo' -e 'DB_PASS=pass' -v /opt/postgresql_docker/data/:/var/lib/postgresql sameersbn/postgresql:9.1-1
De esta manera, el datastore nos queda en el Host y no se reinicializa cada vez que restarteamos el container. Las variables de entorno que definimos al lanzarlo se utilizan luego en el buildout.cfg y ya configura correctamente el archivo openerp.cfg con esos datos.
Si quisieramos acceder al postgreSQL:
psql -U postgres -h $(docker inspect --format {{.NetworkSettings.IPAddress}} postgresql)
Es importante que el link se haga con el nombre db ya que esto está configurado luego en el buildout.cfg.
Para lanzar el container realizando el link con el postgreSQL con los volumes y el puerto expuesto:
docker run -ti -rm -p 8099:8069 -v $PWD/build:/opt/buildout -v /home/usuario/.buildout/odoo7:/opt/buildout/parts/odoo --link postgresql:db --name odoopycon skennedy/odoo
El password de odoodev es password Igualmente, pertenece al group sudo y no necesita password para sudo.
Explicar por qué los volúmenes que montamos.