docker - 使用 localhost 和端口号连接到在 docker 容器内运行的 mysql
问题描述
我有 MySQL 和 tomcat 在两个单独的容器中运行的情况,我正在部署一个包含 hibernate.cfg.xml 的战争,并带有以下连接 URL
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/development_Blobs_001</property>
我有 docker-compose.yml 看起来像这样
services:
database:
build : database
restart : always
ports :
- "3306:3306" #HOST_PORT:CONTAINER_PORT
environment :
MYSQL_USER : root
MYSQL_ROOT_PASSWORD : password
webapp:
build : server
ports :
- "8080:8080"
links :
- database
现在的问题是,如果我使用以下连接 URL,我可以连接到数据库
<property name="hibernate.connection.url">jdbc:mysql://database:3306/development_Blobs_001</property>
但是这需要在我的所有 hibernate.cfg.xml 中进行更改,我想避免这种修改,因为它很痛苦......我该如何解决这个问题?
我正在使用 docker-compose,它默认创建一个网络并在该网络中运行容器我可以使用容器名称来建立容器之间的通信,但我需要避免在我的所有 cfg.xml 文件中用容器名称替换 localhost ..
解决方案
推荐阅读
- docker - OpenShift:我可以设置一个将 docker 镜像从镜像流复制到外部 docker 存储库的构建吗?
- c# - 如何使用相同数据表的第一行更改数据表列名值
- python - 如何返回 csv 中包含特定列中特定单词或短语的所有行?
- javascript - 使用 shell 运行测试脚本时出现问题。“shell 脚本执行失败代码 134”
- angular - 服务未定义无法读取 Angular 7 中未定义的属性“saveFormJson”
- javascript - 如果它们在 serie 对象之间的值存在差距,则折线图不会连接点
- android - 使用内存映射在 Android 中跨进程共享内存
- laravel - 无法打开输入文件:运行 php artisan serv 时的 artisan
- javascript - 禁用/删除元素中的默认 !important 声明
- node.js - 带连接的近几何