为创buildmongodb容器创build时出错

我有这个组成文件,我想有一个应用程序与两个数据库运行MySql和Mongodb。 他们全部进入容器并最终连接它们。

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 

另外我有3个docker文件

第一个是应用程序:

 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"] 

第二个是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/ 

第三个是孟戈德:

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

1)我的问题是最后一个等待,所以我怀疑它需要一些参数才能完美运行。

2)我撰写的XML文件是否正确或需要调整?

您的Mongo的Dockerfile不正确。 构build图像时,不应该运行mongod。 运行命令将在图像构build上执行。 一旦容器启动,mongod命令就用来启动mongo进程。

改变你的mongodb Dockerfile只是为了:

 FROM mongo:3.4 MAINTAINER Bill