Docker-撰写从链接迁移到网络 MongoDB 数据库问题
Docker-compose migrating from links to networking MongoDB database issue
我正在尝试通过 Dockerfile 从使用链接迁移到网络,但我遇到了一些问题。我将首先勾勒出我的原始设置:
原创 - 链接
Docker 文件:
FROM java:8
VOLUME /tmp
ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml:
mongodb:
image: mongo
employee:
image: jdruwe/docker_micro_maven
links:
- mongodb
ports:
- "8080"
新 - 网络
Docker 文件:
FROM java:8
VOLUME /tmp
ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://${MONGO_URI_DOCKER}/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml:
mongodb:
container_name: "db"
image: mongo
employee:
image: jdruwe/docker_micro_maven
environment:
- MONGO_URI_DOCKER=db:27017
ports:
- "8080"
当我在 spring 启动应用程序(原始情况)中调用我的休息端点时,我总是得到响应(一些 json 数据)。当我现在调用它时,我收到以下错误响应:
{
"timestamp": 1453405937191,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.dao.DataAccessResourceFailureException",
"message": "Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]",
"path": "/employee"
}
我参考的来自 Devoxx 的视频:https://youtu.be/aSATsLG59Zs?t=53m33s
好像我一直做错了什么,但我不太确定是什么,欢迎任何帮助。提前致谢!
在docker-compose1.5.x中,新网络仍然是一个实验性功能,需要使用--x-networking
选项启用。
新的网络功能将在 docker-compose 1.6 中退出实验,如果您的 docker-compose.yml.[=12= 使用新的 (2.0) 文件格式,则会自动使用这些功能]
阅读 docker-compose 1.6-rc1 的发行说明以获取更多信息;
https://github.com/docker/compose/releases/tag/1.6.0-rc1
我正在尝试通过 Dockerfile 从使用链接迁移到网络,但我遇到了一些问题。我将首先勾勒出我的原始设置:
原创 - 链接
Docker 文件:
FROM java:8
VOLUME /tmp
ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml:
mongodb:
image: mongo
employee:
image: jdruwe/docker_micro_maven
links:
- mongodb
ports:
- "8080"
新 - 网络
Docker 文件:
FROM java:8
VOLUME /tmp
ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://${MONGO_URI_DOCKER}/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml:
mongodb:
container_name: "db"
image: mongo
employee:
image: jdruwe/docker_micro_maven
environment:
- MONGO_URI_DOCKER=db:27017
ports:
- "8080"
当我在 spring 启动应用程序(原始情况)中调用我的休息端点时,我总是得到响应(一些 json 数据)。当我现在调用它时,我收到以下错误响应:
{
"timestamp": 1453405937191,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.dao.DataAccessResourceFailureException",
"message": "Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]",
"path": "/employee"
}
我参考的来自 Devoxx 的视频:https://youtu.be/aSATsLG59Zs?t=53m33s
好像我一直做错了什么,但我不太确定是什么,欢迎任何帮助。提前致谢!
在docker-compose1.5.x中,新网络仍然是一个实验性功能,需要使用--x-networking
选项启用。
新的网络功能将在 docker-compose 1.6 中退出实验,如果您的 docker-compose.yml.[=12= 使用新的 (2.0) 文件格式,则会自动使用这些功能]
阅读 docker-compose 1.6-rc1 的发行说明以获取更多信息; https://github.com/docker/compose/releases/tag/1.6.0-rc1