Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да стартирате MySql база данни в Docker Compose

За зареждане на вашите sql файлове само при първото стартиране:

Можете да използвате файла за съставяне по-долу

version: '2.1'
services:

  usermanagement-service:
    build: ./UserManagementService
    restart: on-failure
    ports:
      - "7778:7778"
    depends_on:
      mysqldb:
        condition: service_healthy

  mysqldb:
    image: mysql
    volumes:
      - ./mysql-data:/var/lib/mysql
      - ./mysql-init-files:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: userdb
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testuser
    ports:
      - "3600:3306"
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

Трябва да поставите своя data.sql и schema.sql файлове под ./docker-entrypoint-initdb.d директория с помощта на Volumes за повече информация .

SQL файловете в тази папка ще бъдат заредени само ако директорията с данни на DB е празна (първото стартиране на услугата db) . (т.е.) във вашия случай ./mysql-data папката трябва да е празна

За втория ви проблем:

Вместо да използвате wait-for-it.sh , можете да използвате healthcheck и service_healthy . Тук usermanagement-service ще се стартира веднъж mysqldb успешно изпълнява ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] в посочения интервал. За повече подробности относно проверката на състоянието иdependent_on вижте тук .

Имам test команда от тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. проблем с обобщената таблица на mysql

  2. Използването на mysqli_real_escape_string достатъчно ли е, за да защити моя низ за заявка?

  3. PHP/MySQL - как да генерирам автоматично връзка за изтриване на ред в вече автоматично генерирана таблица?

  4. MySQL SELECT Counter, Group By

  5. Как да проследите промените в множество колони в таблицата на базата данни за целите на одита?