Après avoir fait un essai "docker" avec une 1ère image "dockerfile", je souhaite faire un 2ème essai avec des images produites par la société XCG (plus récentes et mises à jour plus régulièrement). Au lieu d'avoir une seule image "Postgresql+Odoo 8", nous avons 2 images "Odoo" et "Postgresql" et donc 2 containers.
Environnement
- serveur virtualisé Ubuntu 14.04-64 bits sur lequel seront installés docker et Odoo
... à noter que Docker nécessite un linux 64 bits et un noyau >=3.8
- navigateur sur PC Linux Mint 14 à partir duquel on accédera à Odoo
- repository XCG : https://registry.hub.docker.com/u/xcgd/odoo
Description
- Se connecter sur le serveur ubuntu avec les droits "root"
- installer docker (pas nécessairement la dernière version de docker)
apt-get update
apt-get install docker.io
- pour avoir la "completion" dans les commandes docker
source /etc/bash_completion.d/docker.io
- lancer docker
service docker.io start
- installer puis lancer le conteneur Postgresql
docker run --name="pg93" xcgd/postgresql
- installer puis lancer le conteneur Odoo 8
docker run -p 8069:8069 --rm --name="odoo" --link pg93:db xcgd/odoo:8.0 start
Remarque : le mot de passe "admin" par défaut est somesuperstrongadminpasswdYOUNEEDTOCHANGEBEFORERUNNING
- vérifier que les 2 conteneurs sont lancés
docker ps
- Odoo est alors accessible par votre navigateur
http://<votre adr ip>:8069
- Rappel de commandes usuelles docker :
docker stop odoo
docker start odoo
docker rm odoo
docker pull odoo
docker images
docker rmi <image id>
Comment accéder au container "Odoo"
- installer "nsenter"
docker run -v /usr/local/bin:/target jpetazzo/nsenter
- récupérer le PID du container
PID=$(docker inspect --format {{.State.Pid}} odoo)
- se connecter au container et accèder au shell
nsenter --target $PID --mount --uts --ipc --net --pid
- copier un répertoire (ex: nouveau module) du host vers le container odoo
* commandes sur le host :
docker inspect -f '{{.Id}}' odoo
exemple de résultat :
aa0616947976e92ece063a0f188eb6f7f702f6d232e97ee06cd6f7f211edd58a
cp -R <module> /var/lib/docker/aufs/mnt/**aa0616947976e92ece063a0f188eb6f7f702f6d232e97ee06cd6f7f211edd58a**/root
* commandes dans le container :
cd /opt/odoo/additional_addons
mv /root/<module> .
- faire un commit d'une image
docker commit <id container> <nom image>:<no version>
Bonsoir
Merci pour le partage.
Comment puis je utiliser la même base de donnée PostgreSQL pour plusieurs container odoo.
Je vois qu'ici le seul container a l'acces admin à la BDD
je pense pas que ca soit possible. docker definit le fait que chaque instance à son conteneur ainsi que son esace bd propre
Bonjour, réponse pour anonyme: https://github.com/docker-library/docs/tree/master/odoo#run-multiple-odoo-instances
On dirait qu'il suffit de lancer d'autre containers odoo liés à la même base.