使用docker-compose同时启动MySQL与连接MySQL的java程序

说明

docker-compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 docker-compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。

难点

使用docker-compose启动MySQL与java程序后,java程序并不会一直等待MySQL将所需的初始化SQL文件执行完成,所以Java程序在执行过程中就会报错说连不上MySQL,就算你使用docker-compose中的depends_on来使java程序容器依赖于mysql容器也是一样没有用的,docker-compose只会判断容器是否启动成功(你可以当成是MySQL容器刚刚开机成功,还未执行SQL文件就跳到执行Java程序容器了)

快速开始

首先给出项目结构图:

docker-mysql的配置我们沿用上一篇博客的配置详细戳-->Docker-mysql启动时自动执行SQL

为了使java程序能适应变化,我们将MySQL的连接配置写入docker-compose文件中:

docker-compose.yml

version: "2"

services:
  mymysql:
    image: mymysql:test
    container_name: mymysql
    ports:
      - "3306:3306"
    command: [
            '--character-set-server=utf8mb4',
            '--collation-server=utf8mb4_unicode_ci'
    ]
    environment:
      MYSQL_ROOT_PASSWORD: "root"
  javatest:
    image: test1jar:test
    container_name: javatest1
    depends_on:
      - mymysql
    environment:
      IP: "192.168.99.100"
      PORT: "3306"
      DRIVERCLASSNAME: "com.mysql.jdbc.Driver"
      DBNAME: "persontest"
      URL: "jdbc:mysql://192.168.99.100:3306/persontest?useSSL=false"
      USERNAME: "root"
      PASSWORD: "root"

将原来的src目录删除,新建一个model命名为Java1,更新一下pom.xml添加jdbc包,编写一个bean类,编写App.java(这里直接用JDBC操作):

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    &
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值