我正在尝试设置一个依赖于 Docker Compose 中名为 teste 的 MySQL 数据库的 Spring Boot 应用程序。在执行 docker-compose up
后,我遇到了以下错误:
Caused by: java.net.ConnectException: Connection refused (Connection refused)
我正在运行 Linux Mint,我的 docker-compose 版本为 1.23.2,Docker 版本为 18.09.0。
application.properties
# JPA PROPS
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.datasource.url=jdbc:mysql://db:3306/teste?useSSL=false&serverTimezone=UTC
spring.datasource.username=rafael
spring.datasource.password=password
spring.database.driverClassName =com.mysql.cj.jdbc.Driver
docker-compose.yml
注:该文件为Docker Compose的配置文件,用于定义和运行多个容器的服务。version: '3.5'
services:
db:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_DATABASE=teste
- MYSQL_USER=rafael
- MYSQL_PASSWORD=password
ports:
- 3306:3306
web:
image: spring-mysql
depends_on:
- db
links:
- db
ports:
- 8080:8080
environment:
- DATABASE_HOST=db
- DATABASE_USER=rafael
- DATABASE_NAME=teste
- DATABASE_PORT=3306
以及 Dockerfile
FROM openjdk:8
ADD target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
wait-for-it.sh
中默认的15秒超时时间不够,我浪费了很多时间尝试但没有成功,所以我不得不增加这个超时时间。如果我知道这个超时时间可以更改,我就不会浪费那么多时间了。您能否更新您的答案,告诉用户默认超时时间可以更改呢? - Moussa