gpt4 book ai didi

java - 容器之间的连接问题(我想......)

转载 作者:行者123 更新时间:2023-11-30 05:35:56 25 4
gpt4 key购买 nike

我正在使用 docker-compose 来运行 3 个容器:

  1. 我的网络应用程序
  2. Postgres
  3. Cassandra

一旦我使用:docker-compose up

我的网络应用程序启动此异常:

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s)tried for query failed (tried: cassandra/172.17.0.3:9042

一旦所有容器都运行起来,我就可以进入我的 webapps 并尝试在 cassandras 容器终止之前对它进行 ping 操作(webapp 容器),并且所有数据包都会成功返回,所以我猜它们之间实际上存在连接。

最奇怪的是,一旦我得到这个异常:

.InvalidQueryException: Keyspace 'myKeyspace' does not exist

这意味着连接已经建立,但是是在我添加持久性并创建上述架构之前,但我没有对 compose.yml 进行任何更改来获得这个新结果

这是我的 docker-compose.yml:

version: '3.1' 

services:


cassandra:
container_name: "cassandra"
image: cassandra
ports:
- 9042:9042


volumes:
- /home/cassandra:/var/lib/cassandra


postgresql:

container_name: "postgresql"
image: postgres:11.1-alpine
restart: always
environment:
POSTGRES_DB: mywebapp
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
#- ./startup.sql:/docker-entrypoint-initdb.d/startup.sql
- postgresdata:/var/lib/postgresql/data

ports:
- 5432:5432



mywebapp:
container_name: "mywebapp"
image: openjdk:10-jre-slim
hostname: mywebapp
volumes:
- ./lib:/home/lib
- ./mywebapp-1.0.1-SNAPSHOT-exec.jar:/home/mywebapp-1.0.1-SNAPSHOT-exec.jar


entrypoint:
- java
- -jar
- -Djava.library.path=/home/lib
- /home/mywebapp-1.0.1-SNAPSHOT-exec.jar

environment:
- LD_LIBRARY_PATH=/home/lib
- spring.datasource.url=jdbc:postgresql://postgresql:5432/mywebapp
- spring.cassandra.contactpoints=cassandra
- spring.cassandra.port=9042
- spring.cassandra.keyspace=mywebapp
#- spring.datasource.username=postgres
#- spring.datasource.password=postgres
#- spring.jpa.hibernate.ddlAuto=update+



ports:
- 8443:8443
- 8080:8080
depends_on:
- cassandra

卷:postgres数据:

先谢谢大家了

最佳答案

我假设您的 Web 应用程序需要 cassandra 服务在启动时运行。您应该将 depends_on 条目添加到您的 Web 应用服务,以便 docker 仅在 cassandra 启动时启动它

并且 links 条目不是必需的,因为 docker 会自动使用服务名称作为为此 docker-compose 项目创建的网络中的主机名。 network_type:bridge 也是如此 - 这是默认的网络类型,因此您可以在您的情况下忽略它。

关于java - 容器之间的连接问题(我想......),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56629260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com