[JAVA] Comment créer un environnement Docker avec Gradle pour IntelliJ

spring-boot-doma2-sample J'ai fait référence au référentiel. ** build.gradle ** a été écrit d'une nouvelle manière.

Spring Initializr

Commencez par créer une application printemps sur le site suivant. https://start.spring.io/

Ajoutez le plug-in utilisé par l'application aux dépendances.

Enfin, cliquez sur * GÉNÉRER * en bas pour décompresser le fichier zip téléchargé et renommez-le avec un nom de répertoire approprié.

スクリーンショット 2020-06-01 22.51.44.png

** docker-compose ** n'apparaît pas dans initializr, alors ajoutez-le à ** build.gradle **.

Ouvrir un projet dans intelli J

Dans ** Ouvrir ou importer **, sélectionnez le répertoire renommé mentionné ci-dessus. スクリーンショット 2020-06-01 23.10.05.png

Modifier build.gradle

Ouvrez ** build.gradle ** dans votre projet. Comme c'est le cas, ajoutez la partie // add.

build.gradle


plugins {
	id 'java'
	id 'org.springframework.boot' version '2.3.1.BUILD-SNAPSHOT'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'com.avast.gradle.docker-compose' version '0.12.1' //ajouter à
	id 'org.flywaydb.flyway' version '6.4.3'
}

// ...Abréviation

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.flywaydb:flyway-core'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'mysql:mysql-connector-java'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
}

Site pour vérifier les plugins Gradle → Rechercher les plugins Gradle

スクリーンショット 2020-06-01 22.45.33.png

スクリーンショット 2020-06-01 22.46.05.png

paramètres du docker

Créez un répertoire ** docker ** dans votre projet et créez ** docker-compose.yml **.

docker-compose.yml


version: '2'
services:
    todo-db:
        build: ./mysql  #Spécifiez le répertoire où se trouve le Dockerfile
        environment:
            - MYSQL_DATABASE=todo
            - MYSQL_ROOT_USER=root
            - MYSQL_ROOT_PASSWORD=passw0rd
            - TZ=Japan
        image: docker_todo-db
        container_name: todoDb
        ports:
            - "33068:3306"  #Si vous utilisez déjà 33068, remplacez-le par un autre numéro

Créez un répertoire ** mysql ** puis ** Dockerfile ** et ** my.cnf **.

Dockerfile


FROM mysql:5.7

RUN /bin/cp -f /etc/localtime /etc/localtime.org
RUN /bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./my.cnf /etc/mysql/conf.d/

RUN mkdir -p /var/log/mysql
RUN chown mysql.mysql /var/log/mysql

my.cnf


[mysqld]
default-storage-engine=InnoDB
user=mysql
character-set-server=utf8mb4
skip-character-set-client-handshake

;general_log=1
;general_log_file=/var/log/mysql/query.log
long_query_time=3
slow_query_log_file=/var/log/mysql/slow-query.log

max_allowed_packet=16MB
innodb_file_per_table
innodb_buffer_pool_size=64M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=2M
group_concat_max_len=2048

[mysqld_safe]
log-error=/var/log/mysqld.log

[mysql]
default-character-set=utf8mb4

Démarrer Docker

Ouvrez un terminal avec intelliJ et exécutez ./gradlew compose Up. Si vous voyez un journal comme celui ci-dessous, vous avez terminé.

> Task :composeUp
Building todo-db

...réduction

TCP socket on localhost:33068 of 'todoDb' is ready
+--------+----------------+-----------------+
| Name   | Container Port | Mapping         |
+--------+----------------+-----------------+
| todoDb | 3306           | localhost:33068 |
+--------+----------------+-----------------+

BUILD SUCCESSFUL in 15s

Consultez le tableau

Vérifiez si la table est créée dans MySQL dans le conteneur docker.

Utilisez le terminal IntelliJ. Exécutez docker ps. Confirmez que le conteneur en cours d'exécution est affiché comme indiqué ci-dessous.

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
149c67cc70d5        docker_todo-db      "docker-entrypoint.s…"   17 seconds ago      Up 15 seconds       33060/tcp, 0.0.0.0:33068->3306/tcp   todoDb

Exécutez docker exec -it todoDb / bin / bash pour entrer dans le conteneur. Il devient root @ <CONTAINER ID>: / #, et vous pouvez voir qu'il se trouve à l'intérieur du conteneur.

$ docker exec -it todoDb /bin/bash
root@149c67cc70d5:/#

Accédez à MySQL avec mysql -u root -p. Il vous sera demandé un mot de passe, alors entrez ici le "** passw0rd **" spécifié dans ** docker-compose.yml **.

MYSQL_ROOT_PASSWORD=passw0rd

$ mysql -u root -p
Enter password: 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| todo               |
+--------------------+
5 rows in set (0.00 sec)

Une table appelée ** todo ** a été créée correctement.

Dans le prochain article, j'aimerais automatiser la migration en utilisant ** flyway-core **. Article suivant ⇨ article sur l'automatisation de la migration

Recommended Posts

Comment créer un environnement Docker avec Gradle pour IntelliJ
Comment créer un environnement Rails 6 avec Docker
[Rails] Comment créer un environnement avec Docker
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Express ~
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ MySQL ~
Comment créer un environnement Rails + Vue + MySQL avec Docker [dernière version 2020/09]
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Sequelize ~
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Créer un environnement Docker avec WSL
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Comment créer l'application Docker + Springboot (pour l'apprentissage de base)
[Environnement Docker] Comment gérer ActiveSupport :: MessageEncryptor :: InvalidMessage
Comment créer un environnement de développement Java avec VS Code
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue ~
Créer un environnement local Couchbase avec Docker
Créer un environnement Node.js avec Docker
Construction d'environnement avec Docker pour les débutants
Créez un environnement Docker + Laravel avec Laradock
Comment créer CloudStack à l'aide de Docker
Comment démarrer Camunda avec Docker
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Comment partager des fichiers avec Docker Toolbox
Créer un environnement de développement PureScript 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 Wordpress avec Docker
Créer un environnement de développement pour Django + MySQL + nginx 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
[Pour ceux qui créent des portefeuilles] Comment utiliser binding.pry avec Docker
Créer un environnement de débogage sur un conteneur - Créer un environnement de développement local pour les didacticiels Rails 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)
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
Comment créer un environnement pour n'importe quelle version de Ruby en utilisant rbenv
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Créer un environnement de développement pour Docker + Rails6 + Postgresql
[Java] Comment tester s'il est nul dans JUnit
Rendre l'environnement SpringBoot1.5 + Gradle4.4 + Java8 + Docker compatible avec Java11
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez rapidement un environnement de développement WordPress avec Docker
Créez des projets Spring Boot par environnement avec Gradle
Comment donner votre image à quelqu'un avec Docker
Comment créer une API avec GraphQL et Rails