当前位置: 首页 > 知识库问答 >
问题:

Docker compose(v2)UnkownHostException

尉迟禄
2023-03-14

docker-compose.yml更新#1

版本:“2”

服务:
Web:

-db


图像:thomptr/rest-services-ui:最新
端口:
链接:
-db:database
重新启动:始终>envtarget:dev

db:
映像:mySQL:5.7
端口:
“3307:3306”
卷:
“/home/trevor/softwaredev/mysql/dump://docker-entrypoint-initdb.d”
环境
mysql_password:legion03

application-dev.properties更新#1

spring.profiles.active=dev
server.contextPath=/restservices
server.port: 9000

spring.datasource.initialize=false
spring.datasource.platform=mysql
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://database:3306/dev

spring.datasource.username=dbuser
spring.datasource.password=legion03;
hibernate.level.logging=debug

spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

来自/dockercompose_web_1容器的日志

 2016-07-01 04:17:24.119 ERROR 1 --- [ost-startStop-1] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Caused by: java.net.UnknownHostException: mysql: unknown error
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)

更新#2 Nguyen Sy Thanh Son建议的方法是正确的。我的解决方案使用公共wait-fo-it.sh脚本。在这里查看我的解决方案:https://github.com/thomptr/dockerdemo


共有1个答案

柯伟志
2023-03-14

Web容器在MySQL容器启动之前启动时,将发生此错误。

为了解决这个问题,我认为您应该在Web映像的entrypont.sh中添加一个脚本,如下所示

host="db"
password="$MYSQL_ROOT_PASSWORD" #mysql root password

until mysql -h "$host" -uroot -p$password; do
  >&2 echo "MYSQL is unavailable - sleeping"
  sleep 1
done

>&2 echo "MYSQL is up - executing command"

# start your app here

上面的脚本将等到mysql启动后再运行应用程序

# run app
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
 类似资料:
  • v2

    v2 实现neutron api第2个版本的定义。 主要方法包括index、update、create、show和delete。 attributes.py 这里面定义了一系列的_validate_xxx方法,包括_validate_mac_address、_validate_ip_address、_validate_boolean等,对传入的参数进行格式检查。 base.py 定义了Contro

  • 2.0.0.2 版本须知 版本已知存在安全隐患,新项目请使用最新版本 发送短信 当选择好短信平台并配置好短信模版后,就可以发送短信了。sms 模块提供的发送短信接口为 : Sms\Controller\ApiController::sendSms($templateID,$phone,$data,$operator) 参数解析: $templateID : 短信模版,从后台配置得到 $phone

  • Browser V2是Windows下一个非常小而且易用的web浏览器。

  • V2是一个简约的高性能的二维向量类。 V2 不是一个真正的类,而仅仅是一个简单的JavaScript对象创建函数生成。所以v2(3,4))创建简单对象{x:3,y:4}。然后V2也作为一个命名空间保留一组最小的静态矢量函数。这些静态函数期望对像: {x:<number>,y:<number>}。 安装: npm 安装 v2d var v2 = require('v2d');var u = v2(3

  • 问题内容: 我只是学习有关显示地图的android编程。但是当我运行这段代码时,出现了一些错误。谁能解释为什么会发生此错误?我该如何解决这个问题?非常感谢你。 堆栈跟踪: MainActivity.java 布局 表现 问题答案: 在您的xml文件中,将其更改 为 将您的活动扩展到FragmentActivty并进行更改 还要检查 希望这可以帮助。

  • 微信管理 v2.x说明文档 最新版本: 推荐使用 v3.x 版本! 配置 微信模块的正常使用需要提供一些微信信息 需要配置的信息如下: wx_app_id : 微信公众号 app_id wx_secret : 微信公众号 app_secret 配置位置: 为了所有的模块都能使用这些微信配置,我们使用后台的站点配置来设置这些信息。(系统设置 -> 站点设置 -> 扩展配置) 获取js-sdk 地址: