我有一个春季启动项目,我想使用docker容器化.
我有几个Spring启动应用程序连接到同一个MySql服务器.
我的spring应用程序需要完全设置数据库(即要创建的所有表和一些表中要插入的数据)才能启动.
我使用Docker版本18.09.0和docker-compose版本1.23.1和ubuntu 16.04 LTS
我有两个文件create.sql和insert.sql,我用它来初始化应用程序使用的数据库.
我使用命令docker-compose.yml创建图像,它成功运行并创建图像.
我有以下问题.
>我假设在使用docker-compose时,只要所有相关容器都已启动,容器就会启动.在我的API容器启动之前,有没有办法等待mysql服务器启动并准备好接受连接?
>如果我选择为应用程序和mysql单独创建容器,而不是使用docker-compose,我如何确保我的应用程序连接到mysql容器?
>还有其他工具可以帮助我实现这一目标吗?
注意:
我曾尝试使用docker inspect< container_id>找到mysql容器的IpAddress并使用它来连接,但它不能正常工作.
以下是我用来创建图像的文件.
docker-compose.yml文件.
version: '3'
services:
demo-mysql:
image: demo-mysql
build: ./demo-mysql
volumes:
- /mnt/data/mysql-data:/var/lib/mysql
ports:
- 3306:3306
environment:
-