L'application développée est celle de Crud Javaweb avec Tomcat et Postgres.
Nous utilisons une seule entité d'une personne comme domaine.
Il s'agit d'une application simple pour une utilisation didactique, donc ils n'ont pas été abordés
Concepts de sécurité et validation des données par exemple.
Nous nous concentrons uniquement sur la création d'un conteneur d'application Java et un conteneur pour le
Base de données d'application avec Docker.
Conçu pour résolution de l'activité de la discipline du point
Cours d'analyse et de développement des systèmes
Campus IFPB Cajazerias
Professeur de discipline Ricardo Job
Obtenez tout d'abord le Docker 
Docker Download
Mais comme nous utilisons Docker pour le déploiement, vous ne pouvez utiliser qu'un seul éditeur de texte comme Sublime ou Notepad ++ ...





Si vous aimez le style de laisser IDE vous aider à terminer le code, vous pouvez utiliser NetBeans ou Eclipse. 

Dockerfile de la base de données Dans votre projet, créez un répertoire avec le nom postgres , et dans Créer un fichier Dockerfile nommé, ainsi que deux autres fichiers create.sql et insert.sql, nous en parlerons bientôt et de leur contenu.
Le fichier dockerfile avait le contenu suivant:
De Postgres
Env Postgres_User Postgres
Env Postgres_password 12345
Env Postgres_DB Post-Client
Copier create.sql /docker-entrypoint-initdb.d/
Copy insert.sql /docker-entrypoint-initdb.d/
Comme nous le réalisons dans le fichier ci-dessus, nous configurons Postgres
indiquant l'utilisateur, le mot de passe et le nom de la banque qui sera créé pour recevoir les données
Application.
Dans les deux dernières lignes, nous informons le Docker, qui après avoir crée la base de données
Il doit lire le contenu des deux fichiers create.sql qui créeront la table et insert.sql
qui insérera dans la banque post-client.
Sensationnel pas?
Créer des pessoa de table (
ID série,
Nom du caractère variant (80) pas nul,
Caractère CPF variant (14) pas nul,
Clé primaire (ID)
));
Insérer dans Person (nom, CPF) VALEUR («Kiko», «123.132.121-31»);
Insérer dans Person (nom, CPF) VALEUR («Keys», «123.132.121-31»);
Insérer dans Person (nom, CPF) VALEUR ('Chiquinha', '123.132.121-31');
Insérer dans la personne (nom, cpf) valeurs («madruga», «123.132.121-31»);
Insérer dans Person (nom, CPF) VALEUR («Florinda», «123.132.121-31»);
docker build -t elefante/banco ./postgres
-t : quelle balise nous allons attribuer à cette image
./postgres
* elefante/banco : nom d'image que nous avons attribué
Après avoir exécuté la commande ci-dessus, si vous n'avez pas l'image
De Postgres, le Docker s'arrangera automatiquement pour vous, bien sûr
C'est parce que nous décrivons cette façon sur Dockerfile.
docker image ls
ou
docker images
docker run -p 5433:5432 -d --name banco elefante/banco
-p : Lind entre la porte hôte locale avec la porte banco conteneur -d : Le conteneur sera exécuté --name arrière
Ci-dessus, nous avons configuré le message de Postgres à 5433, qui dans ce cas était le port
Que j'ai configuré dans mon application Java, la porte après : est la porte du conteneur que nous avons créé.
Dockerfile FROM tomcat
COPY target/Aplicacao.war ${CATALINA_HOME}/webapps
FROM : Dites de quelle image nous avons besoin
COPY : dites le chemin d'où copier les fichiers .war pour le déploiement
${CATALINA_HOME}/webapps : place où nous stockons les fichiers glorieux
Ce fichier Dockerfile doit être dans le répertoire racine de votre projet.
Il est à noter que la Aplicacao de nom était le financement que j'ai donné à la demande
À l'intérieur du pom.xml.
C'est par ce nom que nous appellerons le système dans le navigateur.
<build>
<finalName>Aplicacao</finalName>
</build>
Et bien sûr, à l'intérieur du dossier WEB-INF nous devons avoir un autre répertoire appelé lib
qui doit contenir les bibliothèques jstl.jar et standart.jar , sinon nous aurons
Problèmes lors de la caractéristique de notre système dans le navigateur.
docker build -t imagem-da-aplicacao-java .
-t : quelle balise nous allons attribuer à cette image
. : chemin relatif (ou absolu) vers le fichier dockerfile
Après avoir exécuté la commande ci-dessus, si vous n'avez pas l'image
De Tomcat, le Docker s'arrangera automatiquement pour vous, bien sûr,
En effet, nous décrivons cette action sur le projet Dockerfile en question.
De Tomcat
Copier Target / Application.war $ {Catalina_Home} / WebApps
docker image ls
ou
docker images
docker run -p 8080:8080 -d --name app --link banco:host-banco imagem-da-aplicacao-java
-p : Lind entre la porte hôte locale avec la porte du conteneur
-d : Le conteneur sera exécuté en arrière-plan * n'obstruant pas le terminal
--name : le nom du conteneur
--link : pour que le Docker lie la banque du Conteiner au hôte-tuile qui a fait référence à notre projet Java dans le fichier dbutil.java
Maintenant, allez au navigateur pour ouvrir votre projet: http: // localhost: 8080 / application
Ci-dessus, nous avons configuré le port Tomcat à 8082 Rappelez-vous?
Dans mon cas, car j'utilise toujours Docker Toolbox sur Windows, j'ouvre l'application sur http://192.168.99.100:8080/application.war/
Pour rationaliser le processus de développement, nous créerons deux fichiers .sh:
Run.sh
Le fichier run.sh doit contenir le contenu suivant:
Docker build -t éléphant / banque ./Postgres
Docker Run -P 5433: 5432 -d -Name Bank Elephant / Bank
Package Clean MVN
Docker build -t image-of-the-aja-java.
Docker Run -P 8080: 8080 -D - nom App-Link Bank: HOST-BANCO IMAGE-DA-A Application-Java
non run.sh
application docker stop
Application Docker Kill
Application docker rm
Docker rmi -f image de l'application-java
Docker Stop Bank
Docker Kill Bank
Docker RM Bank
Docker rmi -f éléphant / banque
Donc, comme vous avez déjà créé les images et les conteneurs,
Il n'est plus nécessaire de saisir les commandes de création de l'image de la base de données à chaque fois,
Créez le conteneur de contact, puis créez l'image de l'application Web, créez le
Le conteneur après chaque mise à jour de votre projet.
Type d'ouverture simplement sur Docker:
Sh run.sh
Fera tout à la fois:
Sh non run.sh
Fera tout à la fois:
Le docker arrêtera le conteneur de l'application
Docker tuera le conteneur
Supprimer le conteneur d'application
Vous supprimerez l'image de l'application docker
Le Docker arrêtera le conteneur Banco Elefante
Docker tuera le conteneur
Supprimer le conteneur bancaire
Supprimer l'image bancaire
Maven nettoiera le projet

docker container ls
docker ps -a
docker stop <container_id | container_name>
Références Docker
Nous utilisons Git.