2017-09-19 4 views
0

J'ai ce fichier de composition et je souhaite avoir une application avec deux bases de données exécutant MySql et Mongodb. Tous dans des conteneurs et les connecter éventuellement.Erreur lors de la création du conteneur mongodb pour la composition

version : '2' 
services: 

springappserver: 
build: 
    context: . 
    dockerfile: springapp.dockerfile 
ports: 
    - "8081:8081" 
networks: 
    - net-spring-db1 
    - net-spring-db2 
volumes: 
    - .:/vol/development 
depends_on: 
    - mysqldbserver 
    - mongodbserver 

mongodbserver: 
build: 
    context: . 
    dockerfile: mongodb.dockerfile 
ports: 
    - "27017:27017" 
networks: 
    - net-spring-db2 
volumes: 
    - ./data/db:/data/db 
container_name: mongodbserver 

mysqldbserver: 
build: 
    context: . 
    dockerfile: mysqldb.dockerfile 
ports: 
    - "3306:3306" 
networks: 
    - net-spring-db1 
environment: 
    MYSQL_DATABASE: testdb1 
    MYSQL_USER: myuser 
    MYSQL_PASSWORD: mypassword 
    MYSQL_ROOT_PASSWORD: myrootpassword 
    MYSQL_DATABASE: testdb2 
    MYSQL_USER: myuser 
    MYSQL_PASSWORD: mypassword 
    MYSQL_ROOT_PASSWORD: myrootpassword 
container_name: mysqldbserver 

networks: 
net-spring-db1: 
    driver: bridge 
net-spring-db2: 
    driver: bridge 

Aussi j'ai 3 dockerfiles

Le premier est pour l'application:

FROM java:8 
# maintainer 
MAINTAINER Bill 
# update packages and install maven 
RUN \ 
export DEBIAN_FRONTEND=noninteractive && \ 
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \ 
apt-get update && \ 
apt-get -y upgrade && \ 
apt-get install -y vim wget curl maven 
# attach volumes 
VOLUME /vol/development 
# create working directory 
RUN mkdir -p /vol/development 
WORKDIR /vol/development 
# maven exec 
CMD ["mvn", "clean", "package", "exec:java"] 

Le second est pour le serveur MySql:

FROM mysql/mysql-server 
MAINTAINER Bill 
# Copy the database initialize script: 
# Contents of /docker-entrypoint-initdb.d are run on mysqld startup 
ADD mysql/ /docker-entrypoint-initdb.d/ 

Et le troisième on est pour le Mngodb:

FROM mongo:3.4 
MAINTAINER Bill 
# assume you are in mongo bin directory 
RUN mongod 

1) Mon problème est que le dernier est en attente, donc je suppose qu'il a besoin de quelques arguments pour fonctionner parfaitement.

2) Mon fichier yml de composition est-il correct ou a-t-il besoin de réglages?

Répondre

0

Votre Dockerfile pour mongo n'est pas correct. Vous ne devriez pas courir mongod lors de la construction de l'image. La commande RUN va s'exécuter sur la construction de l'image. La commande mongod est utilisée pour démarrer le processus mongo une fois le conteneur démarré.

changement que vous MongoDB Dockerfile juste les éléments suivants:

FROM mongo:3.4 
MAINTAINER Bill 
+0

Merci pour votre réponse, mais en ajoutant ce mon conteneur docker a ces journaux: – BillUser88