Mysql
 sql >> Database >  >> RDS >> Mysql

Docker MySQL:impossibile connettersi dall'app Spring Boot al database MySQL

Prova questo docker-compose.yml :

version: '3'
services:
  workaround-mysql:
    container_name: workaround-mysql
    image: mysql
    environment:
      MYSQL_DATABASE: workaround
      MYSQL_USER: springuser
      MYSQL_PASSWORD: admin
      MYSQL_ROOT_PASSWORD: admin
      MYSQL_ROOT_HOST: '%'
    ports:
      - "3308:3306"
    restart: always
  workaround:
    depends_on: 
      - workaround-mysql
    restart: always
    # will build ./docker/workaround/Dockerfile
    build: ./docker/workaround
    working_dir: /workaround
    volumes:
      - ./:/workaround
      - ~/.m2:/root/.m2
    expose:
      - "8080"
    command: "mvn clean spring-boot:run"

E aggiorna il tuo application.properties per utilizzare l'URL di connessione JDBC successivo:

spring.datasource.url=jdbc:mysql://workaround-mysql:3306/workaround?serverTimezone=UTC&max_allowed_packet=15728640

Dovrebbe funzionare quando entrambi i contenitori sono nello stesso file docker-compose, perché docker-compose crea una rete predefinita per i contenitori, in modo che possano risolversi a vicenda per nome.