我试图按项目停靠,但当我尝试运行停靠组合起来,我的数据库得到错误失败:通信异常:通讯线路故障。我试过很多方法,都不管用。
我的docker-compose. yml文件:
version: "3"
services:
database:
platform: linux/x86_64
container_name: 'mysql'
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_PASSWORD: p@ssword
MYSQL_USER: testUser
MYSQL_DATABASE: testDatabase
ports:
- "3306:3306"
networks:
- mysql-db
maildev:
image: maildev/maildev
ports:
- "1080:80"
web:
build: .
ports:
- "8080:8080"
networks:
- mysql-db
depends_on:
- database
environment:
SPRING_DATASOURCE_PASSWORD: p@ssword
SPRING_DATASOURCE_USER: testUser
SPRING_DATASOURCE_NAME: testDatabase
SPRING_DATASOURCE_URL: jdbc:mysql://database:3306/testDatabase
links:
- database
networks:
mysql-db:
driver: bridge
还有我的www.example.com文件:application.properties file:
spring.datasource.password=p@ssword
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://database:3306/testDatabase
spring.datasource.username=testUser
spring.mail.host=localhost
spring.mail.port=1025
spring.mail.username=hello
spring.mail.password=hello
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.show_sql=true
spring.jpa.properties.format_sql=true
spring.jpa.logging.level.org.hibernate.type=trace
spring.jpa.logging.level.org.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.logging.mail.smtp.ssl.trust=*
spring.jpa.logging.mail.smtp.auth=true
spring.jpa.logging.mail.smtp.starttls.enable=true
spring.jpa.logging.mail.smtp.connectiontimeout=5000
spring.jpa.logging.mail.smtp.timeout=3000
spring.jpa.logging.mail.smtp.writetimeout=5000
logging.level.org.hibernate.SQL=TRACE
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
1条答案
按热度按时间svmlkihl1#
你的配置比你需要的要多得多。我猜你是在试图解决这个问题,并尝试任何可能的解决方案:)
因此,贝娄是“清理”版本的组成文件。我删除了所有不必要的(把任何你知道你需要)。
你能看出为什么这个配置会起作用吗?)
问题是您为
database
服务定义了自定义container_namemysql
,但在连接中您仍然使用database
name,因此您需要选择其中一个并在连接中使用:从数据库中删除container_name声明(如下面的代码所示)或将连接字符串更改为jdbc:mysql://mysql:3306/testDatabase