Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ MySQL ~

Contenu

Dans l'article précédent, j'ai créé un conteneur pour l'application. Cette fois, nous allons créer un conteneur MySQL sur Docker et effectuer la saisie et l'accès aux données réelles.

Contenu jusqu'à la dernière fois

Comment créer un environnement pour [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue Edition ~

Procédure de travail

  1. Créez un conteneur DB
  2. Saisie des données de test
  3. Accès à MySQL

1. Créez un conteneur DB

Nous allons créer un conteneur db séparément du conteneur d'application créé la dernière fois. La structure finale du répertoire est la suivante.

├─ app
├─ db
│   └─ conf
│        └─ my.cnf     //ajouter à
│   └─ init_db
│        └─ test.sql   //ajouter à
├─ docker
│   └─ app
│   └─ db
│      └─ Dockerfile   //ajouter à
├─ .env                //ajouter à
└─ docker-compose.yml  //Éditer

docker-compose.yml

version: "3"
services:
  app:
    container_name: app_container
    build: ./docker/app
    ports:
      - 8080:8080
    volumes:
      - ./app:/app
    stdin_open: true
    tty: true
    environment:
      TZ: Asia/Tokyo
    command: yarn serve
#Ne modifiez pas le conteneur d'application précédent
#Ajoutez ce qui suit
  db:
    container_name: db_container
    build: ./docker/db
    image: mysql:5.7
    ports:
      - 3306:3306
    volumes:
      - ./db/conf/my.cnf:/etc/mysql/conf.d/mysql.cnf  #Lier les paramètres MySQL
      - ./db/init_db:/docker-entrypoint-initdb.d      #Lier le fichier SQL pour la saisie initiale des données
      - test_data:/var/lib/mysql                      #Lier les données persistantes
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}              #Lire divers paramètres des variables d'environnement du conteneur
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TZ="Asia/Tokyo"

volumes:
  test_data:                                           #Persistance des données

Le paramètre pour lancer le conteneur d'application et le conteneur db en même temps est terminé ci-dessus. Le nom de la base de données, le nom d'utilisateur et le mot de passe à accéder sont exécutés en se référant aux variables d'environnement du conteneur depuis [environnement].

/docker/db/Dockerfile

FROM mysql

EXPOSE 3306

CMD ["mysqld"]

Définissez le port sur 3306.

db/conf/my.cnf

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

Définissez le code de caractère de MySQL.

.env

MYSQL_DATABASE=test_db  //Définissez le nom de la base de données décrit plus tard
MYSQL_USER={Définissez un nom d'utilisateur approprié}
MYSQL_PASSWORD={Définir le mot de passe pour l'accès MySQL}
MYSQL_ROOT_PASSWORD={Définir le mot de passe pour l'accès MySQL}

Ce que vous définissez ici est référencé lorsque le conteneur démarre et est défini dans la variable d'environnement du conteneur. Le mot de passe de connexion sera le mot de passe défini ci-dessus.

* Exclut les fichiers .env avec .gitignore afin qu'ils ne soient pas inclus dans Git. Ne poussez pas si vous faites une erreur! </ font>

2. Saisie des données de test

db/init_db/test.sql

DROP DATABASE IF EXISTS test_db;
CREATE DATABASE test_db;

USE test_db;

DROP TABLE IF EXISTS test;

CREATE TABLE test (
  id int NOT NULL AUTO_INCREMENT primary key,
  name varchar(30),
  description varchar(255)
);

INSERT INTO test (id, name, description) VALUES (1, 'test1', 'Données de test 1.');
INSERT INTO test (id, name, description) VALUES (2, 'test2', 'Données de test 2.');
INSERT INTO test (id, name, description) VALUES (3, 'test3', 'Données de test 3.');
INSERT INTO test (id, name, description) VALUES (4, 'test4', 'Données de test 4.');
INSERT INTO test (id, name, description) VALUES (5, 'test5', 'Données de test 5.');
INSERT INTO test (id, name, description) VALUES (6, 'test6', 'Données de test 6.');
INSERT INTO test (id, name, description) VALUES (7, 'test7', 'Données de test 7.');
INSERT INTO test (id, name, description) VALUES (8, 'test8', 'Données de test 8.');
INSERT INTO test (id, name, description) VALUES (9, 'test9', 'Données de test 9.');
INSERT INTO test (id, name, description) VALUES (10, 'test10', 'Données de test 10.');

Créez une base de données test_db> une table de test comme données pour la vérification. Insérez des données telles que l'ID, le nom et la description dans la colonne le cas échéant.

3. Accéder à MySQL

C'est la fin des préparatifs. À partir de là, vérifiez si vous pouvez réellement accéder et obtenir les données.

Construction du conteneur DB

$ docker-compose build

Démarrage du conteneur DB

$ docker-compose up -d

Confirmation de démarrage du conteneur

$ docker ps

OK si db_container est en cours d'exécution!

Accéder au conteneur

$ docker exec -it db_container sh

Connectez-vous à MySQL

$ mysql -u root -p -h 127.0.0.1

Enter password: // .Entrez le mot de passe décrit dans env

mysql>          //Si cela se produit, l'accès à Mysql est complet!

Vérification de la base de données

SHOW DATABASES;

Succès si la base de données préparée [test_db] existe!

スクリーンショット 2020-09-20 17.21.39.png

Spécifiez la base de données à utiliser

USE test_db;

Consultez le tableau

SHOW TABLES;

Si la table [test] créée existe, c'est OK! スクリーンショット 2020-09-20 17.22.55.png

Vérifiez les données dans le tableau de test

SELECT * FROM test;

Si la liste des données enregistrées est affichée dans la table de test, elle est complétée sans aucun problème!

スクリーンショット 2020-09-20 17.24.06.png

Si vous pouvez confirmer jusqu'à présent, vous pouvez accéder à MySQL sans aucun problème! Je vous remercie pour votre travail acharné!

Quitter mysql

mysql> exit
Bye 
# //Si cela se produit, vous êtes déconnecté de MySQL et accédez au conteneur.

Sortez du conteneur

exit

Arrêtez le conteneur

docker-compose stop

Je vous remercie pour votre travail acharné! À ce stade, vous pouvez lancer MySQL sur le conteneur Docker et créer un environnement dans lequel vous pouvez insérer et accéder aux données! Maintenant que nous avons un conteneur d'application et une base de données pour fonctionner, nous allons créer un conteneur de serveur API pour exploiter les données la prochaine fois!

la prochaine fois

Comment créer un environnement de [TypeScript + Vue + Express + MySQL] avec Docker ~ Express ~

référence

Comment créer un environnement pour [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue Edition ~ Comment créer un environnement de [TypeScript + Vue + Express + MySQL] avec Docker ~ Sequelize ~

Recommended Posts

Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ MySQL ~
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Express ~
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue ~
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Sequelize ~
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Comment créer un environnement Rails 6 avec Docker
[Rails] Comment créer un environnement avec Docker
[Road_node.js_1-1] La voie de la création de l'environnement Node.js Express MySQL à l'aide de Docker
Comment créer un environnement Docker avec Gradle pour IntelliJ
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
[Environnement Docker] Comment gérer ActiveSupport :: MessageEncryptor :: InvalidMessage
Créer un environnement Docker avec WSL
Comment créer un environnement de développement Java avec VS Code
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Créer un environnement local Couchbase avec Docker
Créer un environnement Node.js avec Docker
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Créez un environnement Docker + Laravel avec Laradock
Comment créer CloudStack à l'aide de Docker
Comment démarrer Camunda avec Docker
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
Comment installer Pry après avoir créé un environnement de développement Rails avec Docker
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Comment partager des fichiers avec Docker Toolbox
Créer un environnement de développement PureScript avec Docker
Construire un environnement Rails 6 + MySQL avec Docker compose
Déployer sur heroku avec Docker (Rails 6, MySQL)
Modifier Mysql avec des commandes dans l'environnement Docker
[Docker] Créez un environnement Node.js + express + webpack avec Docker
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Créer un environnement de développement Wordpress avec Docker
Créer un environnement Nuxt TypeScript + Vuetify avec docker-compose
[Docker] Construisez l'environnement d'exécution de Jupyter Lab avec Docker
Créer un environnement avec Docker sur AWS
Créer un environnement de vérification des opérations TensorFlow avec Docker
Comment exécuter Blazor (C #) avec Docker
Comment exécuter avec des commandes de langage de développement normales dans l'environnement de développement Docker
01. J'ai essayé de créer un environnement avec SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10)
Quand j'ai essayé de créer un environnement pour PHP7.4 + Apache + MySQL avec Docker, je suis resté bloqué [Windows & Mac]
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez rapidement un environnement de développement WordPress avec Docker
Comment donner votre image à quelqu'un avec Docker