2017-03-12 1 views
0

J'essaye d'utiliser cette image https://hub.docker.com/r/ibmcom/cloudant-developer/ avec docker composer, quand j'utilise les instructions originales cela fonctionne, mais quand je le traduis au format de docker compose ça ne fonctionne pas correctement, je vois la page du tableau de bord mais elle est vide et semble cassée.Exécuter Cloudant comme conteneur docker composer avec docker composer

La commande d'exécution d'origine:

docker run \ 
     --privileged \ 
     --detach \ 
     --volume cloudant:/srv \ 
     --name cloudant-developer \ 
     --publish 8080:80 \ 
     --hostname cloudant.dev \ 
     ibmcom/cloudant-developer 

Le fichier créé Compose I:

version: '3' 
services: 
    cloudant: 
    image: ibmcom/cloudant-developer:latest 
    container_name: cloudant-developer 
    hostname: cloudant.dev 
    ports: 
     - "8080:80" 
    expose: 
     - "80" 
    volumes: 
     - cloudant:/srv 
    privileged: true 
volumes: 
    cloudant: 

Merci de nous aider.

P.S - Je n'exécutait les commandes pour un accord de licence manuellement

Répondre

4

Il m'a fallu un certain temps pour comprendre. Il s'avère que le conteneur docker cloudant est lié au sous-réseau du réseau docker par défaut. Plus précisément, j'ai trouvé que haproxy a été mappé pour rediriger vers 172.17.0.2:5984 et échouait parce que par défaut docker compose crée un nouveau réseau dans une plage d'adresses IP différente. Il peut y avoir d'autres problèmes liés à cela. En fin de compte, je trouve que vous pouvez exécuter docker composer sur le réseau docker par défaut avec la configuration suivante:

network_mode: bridge

Ainsi, votre docker-compose.yml ressemblerait à ceci:

version: '3' 
    services: 
    cloudant: 
     image: ibmcom/cloudant-developer:latest 
     container_name: cloudant-developer 
     hostname: cloudant.dev 
     ports: 
     - "8080:80" 
     expose: 
     - "80" 
     volumes: 
     - cloudant:/srv 
     privileged: true 
     network_mode: bridge 
    volumes: 
    cloudant: