我正在尝试文档化 Spring Boot 的应用程序,它也使用 mysql 数据库 下面是docker文件
FROM maven:3.8.3-openjdk-17 AS build
EXPOSE 8081
ADD /target/oks-0.0.1-SNAPSHOT.jar oks-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","oks-0.0.1-SNAPSHOT.jar"]
application-develop.properties如下
spring.datasource.url=jdbc:mysql://localhosts:3306/oks?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password = roots
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
#spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
server.port= 8081
Docker 撰写文件
version: "3.7"
services:
mysql:
image: mysql:5.6.33
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: roots
MYSQL_DATABASE: oks
api_service:
build: ./oks-api
ports:
- 8081:8081
depends_on:
- mysql
environment:
spring.datasource.url: jdbc:mysql://mysql/oks?characterEncoding=UTF-8
spring.datasource.username: root
spring.datasource.password: roots
下面是我面临的错误
compose-api_service-1 | ... 59 common frames omitted
compose-api_service-1 | Caused by: java.net.ConnectException: Connection refused
compose-api_service-1 | at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
compose-api_service-1 | at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[na:na]
compose-api_service-1 | at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
compose-api_service-1 | at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
compose-api_service-1 | at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
compose-api_service-1 | at java.base/java.net.Socket.connect(Socket.java:633) ~[na:na]
compose-api_service-1 | at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
compose-api_service-1 | at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:62) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
compose-api_service-1 | ... 62 common frames omitted
compose-api_service-1 |
compose-api_service-1 exited with code 1
我尝试了几种方法,但都失败了,提前谢谢你
尝试在 application-develop.properties 中添加 spring.host= 。因为我认为既然你没有在docker中使用network_mode: host,它可能找不到要连接的目标。