Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer une base de données dans le conteneur Docker de la base de données ?

Vous pouvez utiliser docker et docker-compose. Par exemple avec docker compose.

Créez un fichier appelé docker-compose.yml comme :

version: '3'
services:
  db:
    image: percona:5.7
    container_name: whatever_you_want
    environment:
      - MYSQL_DATABASE=${DATABASE}
      - MYSQL_ROOT_PASSWORD=${ROOT_PASSWORD}
      - MYSQL_USER=${USER}
      - MYSQL_PASSWORD=${PASSWORD}
    volumes:
      - ./data:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"

De plus, vous avez besoin d'un fichier sous ./data avec les commandes SQL que vous souhaitez exécuter et et .env fichier où vous définissez les variables d'environnement que j'ai utilisées dans le docker-compose.yml fichier ci-dessus comme :${DATABASE}

Votre .env fichier :

# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev

Votre fichier avec les commandes SQL pour exécuter ./data/init.sql (vous pouvez nommer le fichier comme vous voulez)

CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here

Ce fichier sera exécuté à chaque fois que vous le ferez :

docker-compose up -d db