So erstellen Sie mit Docker ~ MySQL ~ eine [TypeScript + Vue + Express + MySQL] -Umgebung

Inhalt

Im vorherigen Artikel habe ich einen Container für die App erstellt. Dieses Mal werden wir einen MySQL-Container auf Docker erstellen und die eigentliche Dateneingabe und den Zugriff durchführen.

Inhalt bis zum letzten Mal

Erstellen einer Umgebung für [TypeScript + Vue + Express + MySQL] mit Docker ~ Vue Edition ~

Arbeitsablauf

  1. Erstellen Sie einen DB-Container
  2. Eingabe von Testdaten
  3. Zugriff auf MySQL

1. Erstellen Sie einen DB-Container

Wir werden einen Datenbankcontainer separat von dem zuletzt erstellten App-Container erstellen. Die endgültige Verzeichnisstruktur lautet wie folgt.

├─ app
├─ db
│   └─ conf
│        └─ my.cnf     //hinzufügen
│   └─ init_db
│        └─ test.sql   //hinzufügen
├─ docker
│   └─ app
│   └─ db
│      └─ Dockerfile   //hinzufügen
├─ .env                //hinzufügen
└─ docker-compose.yml  //Bearbeiten

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
#Bearbeiten Sie den vorherigen Anwendungscontainer nicht
#Fügen Sie Folgendes hinzu
  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  #Binden Sie die MySQL-Einstellungen
      - ./db/init_db:/docker-entrypoint-initdb.d      #Binden Sie die SQL-Datei für die erste Dateneingabe
      - test_data:/var/lib/mysql                      #Binden Sie persistierte Daten
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}              #Lesen Sie verschiedene Einstellungen aus den Container-Umgebungsvariablen
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TZ="Asia/Tokyo"

volumes:
  test_data:                                           #Datenpersistenz

Die Einstellung zum gleichzeitigen Starten des App-Containers und des DB-Containers ist oben abgeschlossen. Der Datenbankname, der Benutzername und das Kennwort, auf die zugegriffen werden soll, werden unter Bezugnahme auf die Umgebungsvariablen des Containers aus [Umgebung] ausgeführt.

/docker/db/Dockerfile

FROM mysql

EXPOSE 3306

CMD ["mysqld"]

Stellen Sie den Port auf 3306 ein.

db/conf/my.cnf

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

Stellen Sie den Zeichencode von MySQL ein.

.env

MYSQL_DATABASE=test_db  //Legen Sie den später beschriebenen Datenbanknamen fest
MYSQL_USER={Legen Sie einen geeigneten Benutzernamen fest}
MYSQL_PASSWORD={Legen Sie das Passwort für den MySQL-Zugriff fest}
MYSQL_ROOT_PASSWORD={Legen Sie das Passwort für den MySQL-Zugriff fest}

Auf das, was Sie hier festlegen, wird beim Start des Containers verwiesen und in der Umgebungsvariablen des Containers festgelegt. Das Anmeldekennwort ist das oben festgelegte Kennwort.

* Schließen Sie .env-Dateien mit .gitignore aus, damit sie nicht in Git enthalten sind. Drücken Sie nicht, wenn Sie einen Fehler machen! </ font>

2. Eingabe von Testdaten

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', 'Testdaten 1.');
INSERT INTO test (id, name, description) VALUES (2, 'test2', 'Testdaten 2.');
INSERT INTO test (id, name, description) VALUES (3, 'test3', 'Testdaten 3.');
INSERT INTO test (id, name, description) VALUES (4, 'test4', 'Testdaten 4.');
INSERT INTO test (id, name, description) VALUES (5, 'test5', 'Testdaten 5.');
INSERT INTO test (id, name, description) VALUES (6, 'test6', 'Testdaten 6.');
INSERT INTO test (id, name, description) VALUES (7, 'test7', 'Testdaten 7.');
INSERT INTO test (id, name, description) VALUES (8, 'test8', 'Testdaten 8.');
INSERT INTO test (id, name, description) VALUES (9, 'test9', 'Testdaten 9.');
INSERT INTO test (id, name, description) VALUES (10, 'test10', 'Testdaten 10.');

Erstellen Sie eine test_db-Datenbank> Testtabelle als Daten zur Überprüfung. Fügen Sie nach Bedarf Daten wie ID, Name und Beschreibung in die Spalte ein.

3. Greifen Sie auf MySQL zu

Dies ist das Ende der Vorbereitungen. Überprüfen Sie von hier aus, ob Sie tatsächlich auf die Daten zugreifen und diese abrufen können.

DB Container Build

$ docker-compose build

DB-Container starten

$ docker-compose up -d

Bestätigung des Containerstarts

$ docker ps

OK wenn db_container läuft!

Greifen Sie auf den Container zu

$ docker exec -it db_container sh

Melden Sie sich bei MySQL an

$ mysql -u root -p -h 127.0.0.1

Enter password: // .Geben Sie das in env beschriebene Passwort ein

mysql>          //Wenn dies herauskommt, ist der Zugriff auf MySQL vollständig!

Datenbankprüfung

SHOW DATABASES;

Erfolg, wenn die vorbereitete Datenbank [test_db] existiert!

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

Geben Sie die zu verwendende Datenbank an

USE test_db;

Überprüfen Sie die Tabelle

SHOW TABLES;

Wenn die erstellte [Test] -Tabelle vorhanden ist, ist dies in Ordnung! スクリーンショット 2020-09-20 17.22.55.png

Überprüfen Sie die Daten in der Testtabelle

SELECT * FROM test;

Wenn die Liste der gespeicherten Daten in der Testtabelle angezeigt wird, ist sie problemlos abgeschlossen!

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

Wenn Sie dies bisher bestätigen können, können Sie problemlos auf MySQL zugreifen! Danke für deine harte Arbeit!

Beenden Sie MySQL

mysql> exit
Bye 
# //In diesem Fall werden Sie von MySQL abgemeldet und greifen auf den Container zu.

Raus aus dem Container

exit

Stoppen Sie den Behälter

docker-compose stop

Danke für deine harte Arbeit! Zu diesem Zeitpunkt können Sie MySQL auf dem Docker-Container starten und eine Umgebung erstellen, in die Sie Daten einfügen und darauf zugreifen können! Jetzt, da wir einen App-Container und eine Datenbank haben, um tatsächlich zu arbeiten, werden wir einen API-Server-Container erstellen, um Daten beim nächsten Mal zu betreiben!

nächstes Mal

Erstellen einer Umgebung von [TypeScript + Vue + Express + MySQL] mit Docker ~ Express ~

Referenz

Erstellen einer Umgebung für [TypeScript + Vue + Express + MySQL] mit Docker ~ Vue Edition ~ So erstellen Sie mit Docker ~ Sequelize ~ eine Umgebung aus [TypeScript + Vue + Express + MySQL]

Recommended Posts

So erstellen Sie mit Docker ~ MySQL ~ eine [TypeScript + Vue + Express + MySQL] -Umgebung
So erstellen Sie mit Docker ~ Express ~ eine [TypeScript + Vue + Express + MySQL] -Umgebung
So erstellen Sie mit Docker ~ Vue ~ eine [TypeScript + Vue + Express + MySQL] -Umgebung
So erstellen Sie mit Docker ~ Sequelize ~ eine [TypeScript + Vue + Express + MySQL] -Umgebung
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
So erstellen Sie eine Rails 6-Umgebung mit Docker
[Rails] So erstellen Sie eine Umgebung mit Docker
[Road_node.js_1-1] Der Weg zum Erstellen der Node.js Express MySQL-Umgebung mit Docker
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
[Docker-Umgebung] Umgang mit ActiveSupport :: MessageEncryptor :: InvalidMessage
Erstellen einer Docker-Umgebung mit WSL
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
So beenden Sie Docker für Mac und erstellen eine Docker-Entwicklungsumgebung mit Ubuntu + Vagrant
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen Sie mit Docker eine Node.js-Umgebung
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
So erstellen Sie CloudStack mit Docker
So starten Sie Camunda mit Docker
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
So installieren Sie Pry nach dem Erstellen einer Rails-Entwicklungsumgebung mit Docker
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
So teilen Sie Dateien mit Docker Toolbox
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Mit Docker auf Heroku bereitstellen (Rails 6, MySQL)
Bearbeiten Sie MySQL mit Befehlen in der Docker-Umgebung
[Docker] Erstellen Sie mit Docker eine Node.js + Express + Webpack-Umgebung
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Erstellen Sie eine Nuxt TypeScript + Vuetify-Umgebung mit Docker-Compose
[Docker] Erstellen Sie die Ausführungsumgebung von Jupyter Lab mit Docker
Erstellen Sie eine Umgebung mit Docker unter AWS
Erstellen Sie mit Docker eine TensorFlow-Betriebsüberprüfungsumgebung
So führen Sie Blazor (C #) mit Docker aus
Ausführen mit normalen Befehlen für die Entwicklungssprache in der Docker-Entwicklungsumgebung
01. Ich habe versucht, eine Umgebung mit SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10) zu erstellen.
Als ich versuchte, mit Docker eine Umgebung für PHP7.4 + Apache + MySQL zu erstellen, blieb ich stecken [Windows & Mac]
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
So geben Sie jemandem Ihr Image mit Docker