我有两个不同的项目,每个项目都有自己的docker-compose.yml文件。
(1)第一个项目有一个带有App-1 + mysql容器的tomcat容器
(2)第二个项目有一个带有App-2的tomcat容器。
在这个项目中,我想使用与第一个项目相同的数据库。
首先,我将在同一台机器上部署这两个项目,在下一阶段我想将第二个项目移到另一台机器上。
的问候,我
答案 0 :(得分:0)
@hichamx:
(1)这是我的原始设置,db在同一主机上运行。 (IP = 172.168.10.12)
tomcat:
image: myimage:v3.1
ports:
- "8080:8080"
environment:
- VIRTUAL_HOST=domain.local
- VIRTUAL_PORT=8080
external_links:
- db:db
(2)现在我想在第二台主机(ip = 172.168.10.14)上启动数据库,并将端口映射到3306:3306。
tomcat:
image: myimage:v3.1
ports:
- "8080:8080"
environment:
- VIRTUAL_HOST=domain.local
- VIRTUAL_PORT=8080
external_links:
- db:db
#- lenovo:db # 'service:alias'
extra_hosts:
- "lenovo:172.168.10.14"
- "db:172.168.10.14"
我现在正在172.68.10.14机器上的端口3306上运行数据库(映射到lenovo和db' extra-hosts' ....我似乎只能映射db:我的外部链接中的数据库...)此设置确实有效,我从来没有触及下面的context.xml文件。 (想要理清地图并能够使用' lenovo'或其他名称...)
我的tomcat-application被映射到' db'在context.xml文件中:
<Resource name="jdbc/DBWeb"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
validationQuery="SELECT 1"
testOnBorrow="true"
username="user"
password="secret"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://db/personal?useUnicode=true&characterEncoding=utf-8"/>
其中&#39; personal&#39;,在上面的url-string中,将是我的数据库和&#39; db&#39;是数据库的别名(映射在docker-compose.yml文件中)
感谢您帮助@hichamx让我直截了当。