【发布时间】:2019-06-17 10:17:47
【问题描述】:
我正在使用 docker-compose 运行 3 个容器 1-我的网络应用程序 2-Postgres 3-卡桑德拉
一旦我使用: 码头工人组成
我的 webapp 启动了这个异常: com.datastax.driver.core.exceptions.NoHostAvailableException:所有主机 尝试查询失败(尝试:cassandra/172.17.0.3:9042
一旦所有容器都在运行,我就可以进入我的 webapp 并尝试在 cassandras 容器死机(webapp 容器)之前对其进行 ping 操作,并且所有数据包都成功返回,所以我猜它们之间实际上存在连接。
最奇怪的是,一旦我得到这个异常: .InvalidQueryException:键空间“myKeyspace”不存在
这意味着连接已经建立,但在我添加持久性并创建提到的架构之前,但我没有对 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
卷: postgresdata:
提前谢谢大家
【问题讨论】:
标签: java docker cassandra docker-compose