我对Docker相对较新,我开始尝试使用带有spring-data和mysql的简单spring-boot rest应用程序。我有一个docker compose文件,如下所示:
version: "3"
services:
transfers:
image: bernicezerafa11/playground:3.0.0
depends_on:
- mysql
ports:
- "8542:8080"
environment:
- DATABASE_HOST=192.168.99.100 # change to mysql if running without docker-machine
- DATABASE_USERNAME=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=transfers
- DATABASE_PORT=13306 # change to 3306 if running without docker-machine
mysql:
image: mysql:5.7
ports:
- "13306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=transfers
我的本地环境是Windows 10 Home,即我需要安装 docker工具箱,并运行默认的docker-machine(如果运行192.168.99.100
,则使用ip docker-machine ip default
) 。
现在,我想更进一步,让此docker-compose文件在任何机器上运行而无需人工干预。此时,如果我尝试在安装了 Docker for Windows 的Windows 10 Pro上运行相同的docker-compose,则需要将数据库主机更改为mysql
,并将端口更改为内部端口3306
而不是13306
。
这可以通过某种方式自动确定每个环境的mysql主机和端口是什么吗?
非常感谢您的帮助:)