У меня есть приложение micronaut, которое я пытаюсь поместить в контейнер докеров и подключить его к другому контейнеру докеров, у которого есть образ postgres. Я думаю, что выполнил процедуру, чтобы сообщить ему подключиться к postgres в другом контейнере, но нет, когда я пытаюсь запустить свой образ докера, он терпит неудачу, потому что он не может подключиться к postgres на localhost: 5432. Несмотря на то:
Докерфил:
FROM openjdk:14
COPY target/time-*.jar time.jar
EXPOSE 8080
CMD ["java", "-Dmicronaut.environments=docker", "-Dcom.sun.management.jmxremote", "-Xmx128m", "-jar", "time.jar"]
Я сказал ему работать с моим профилем docker .
Мое приложение-docker.yml выглядит так:
micronaut:
application:
name: time
server:
netty:
access-logger:
enabled: true
logger-name: access-logger
datasources:
default:
url: jdbc:postgresql://db:5432/postgres
driverClassName: org.postgresql.Driver
username: postgres
password: postgres
schema-generate: CREATE_DROP
dialect: POSTGRES
schema: time
jpa.default.properties.hibernate.hbm2ddl.auto: update
flyway:
datasources:
default:
enabled: true
schemas: time
...
Когда я запускал свой веб-контейнер, он говорит, что работает с профилем докера, но не может подключиться к localhost! Почему??
18:41:57.947 [main] INFO i.m.context.env.DefaultEnvironment - Established active environments: [docker]
18:41:58.625 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
18:41:59.656 [main] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Это мой docker-compose.yml:
version: "3.3"
services:
web:
image: time
build: .
ports:
- "8080:8080"
depends_on:
- db
links:
- db
environment:
JDBC_URL: jdbc:postgresql://db:5432/time
JDBC_HOST: db
JDBC_PORT: 5432
db:
image: "postgres"
ports:
- "5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
Что мне не хватает?
1 ответ
Он пробовал localhost, потому что моего application-docker.yml не было в банке. Кто-то здесь помог мне: Micronaut не подключается к db в yml
Похожие вопросы
Связанные вопросы
Новые вопросы
postgresql
PostgreSQL — это система управления реляционными базами данных (RDBMS) с открытым исходным кодом, доступная для всех основных платформ, включая Linux, UNIX, Windows и OS X. Задавая вопросы, указывайте свою версию Postgres. Обратитесь к dba.stackexchange.com для вопросов, касающихся администрирования или дополнительных функций.