я использую docker-compose для запуска 3-х контейнеров
1-мое веб-приложение
2-Postgres
3-Cassandra
Как только я использую:
docker-compose up
Мое веб-приложение запускает это исключение:
com.datastax.driver.core.exceptions.NoHostAvailableException: все хосты
попытка запроса не удалась (попытка: cassandra / 172.17.0.3: 9042
Как только все контейнеры запущены, я могу войти в мое веб-приложение и попытаться пропинговать контейнер cassandras, прежде чем он умрет (контейнер веб-приложения), и все пакеты будут успешно возвращены, поэтому я полагаю, что между ними действительно есть соединение.
Самое странное, что однажды я получил это исключение:
.InvalidQueryException: пространство ключей 'myKeyspace' не существует
Это означает, что соединение было установлено, но это было до того, как я добавил персистентность и создал упомянутую схему, но я ничего не изменил в моем compose.yml, чтобы получить этот новый результат
Вот мой докер-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:
Спасибо всем заранее