[英]Caused by: java.net.UnknownHostException: mysqldb
I am working on spring boot application.我正在研究 spring 启动应用程序。 I want to dockerize my spring boot application but while I'm trying to make jar file from
eclipse
I get error java.net.UnknownHostException
.我想对我的 spring 启动应用程序进行 dockerize,但是当我尝试从
eclipse
制作 jar 文件时,我收到错误java.net.UnknownHostException
I'm a new guy in docker technology.我是 docker 技术的新手。
Here is a docker images which is stored in my docker:这是存储在我的 docker 中的 docker 图像:
Here down is my code:下面是我的代码:
pom.xml pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.flightbook</groupId>
<artifactId>flight_management_system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>flight_management_system</name>
<description>Demo project for Spring Boot</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties应用程序属性
spring.datasource.url=jdbc:mysql://mysqldb:3306/mysql_database?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=
server.port=8040
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
docker-compose.yml docker-compose.yml
version: "3.8"
services:
server:
build: .
restart: always
ports:
- 8090:8090
depends_on:
- mysqldb
mysqldb:
image: "mysql:8.0"
restart: always
ports:
- 3306:3306
environment:
MYSQL_DATABASE: mysql_database
MYSQL_USER: root
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
Stack trace堆栈跟踪
Caused by: java.net.UnknownHostException: mysqldb
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1509) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1367) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1301) ~[na:na]
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:130) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63) ~[mysql-connector-java-8.0.29.jar:8.0.29]
... 118 common frames omitted
I think that the container is not actually called mysqldb
, but {appname}_mysqldb
, where the {appname}
is the name of the parent directory, where you invoke docker-compose up
.我认为容器实际上不是称为
mysqldb
,而是{appname}_mysqldb
,其中{appname}
是父目录的名称,您在其中调用docker-compose up
。
To check if this is the case, run docker ps
after starting your containers.要检查是否是这种情况,请在启动容器后运行
docker ps
。
you can use in spring boot properties as database source localhost, and when you run your container use: sudo docker run --net=host -p image name您可以在 spring 引导属性中使用数据库源本地主机,并且在运行容器时使用: sudo docker run --net=host -p 图像名称
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.