1. Les points de douleur à résoudre
1. Pas besoin de construire un environnement de développement back-end.
2. Les changements dans l'environnement de développement ne nécessitent que la modification du miroir en mises à jour synchrones.
3. Pas besoin d'outils IDE tels que Eclipse.
4. Projets de développement de commutation
2. Solutions
Utilisez Docker pour démarrer les images Ubuntu, construisez l'environnement de développement requis par le projet dans le conteneur, montez le code local dans le conteneur, utilisez le volume de montage pour compiler et exécuter le code à l'aide de l'environnement dans le conteneur et que l'hôte accède aux services dans le conteneur via le port exposé par Docker, afin que la machine de développement frontale ne soit que de déployer Docker et de le faire.
3. À propos de Docker
Comprendre Docker
Cet article n'a pas l'intention d'expliquer les connaissances de Docker en détail. Il existe de nombreux articles connexes. Si vous êtes intéressé, vous pouvez lire ce livre. Je suis limité au développement de cet outil pour l'utilisation de Docker. S'il y a une mauvaise chose, veuillez le signaler.
accélérateur
accélérateur de daocloud
4. Construisez un environnement
Après avoir téléchargé et installé Docker, nous pouvons commencer. Ce dont nous parlons ci-dessous, c'est Java, mais il en va de même pour d'autres environnements.
Obtenez l'image Ubuntu.
Docker tire Ubuntu
Après l'avoir terminé, exécutez docker images et vous verrez une image nouvellement mise à jour.
Entrez le conteneur
docker run -it ubuntu
5. Installer le logiciel et configurer les variables d'environnement
Première mise à jour apt-get
Mise à jour apt-get
Ensuite, vous pouvez utiliser apt-get install * pour installer le logiciel dont vous avez besoin. Sinon, téléchargez le package d'installation et installez-le vous-même. En même temps, configurez les variables d'environnement. Je n'entrerai pas dans les détails ici.
Vi. Démarrer le service
Entrez le répertoire Tomcat, démarrez le service et ouvrez 0.0.0.0:8080 dans le navigateur. Si rien n'est mal, vous verrez que le serveur n'est pas accessible. En effet, le service que nous venons de commencer est dans Docker. Si nous ne faisons pas d'opérations, nous ne pourrons pas accéder au service à l'intérieur de Docker.
Alors, sortons d'abord du conteneur
sortie
Après avoir quitté, exécutez docker ps -a et vous pouvez voir que le conteneur que nous venons maintenant est toujours là. La plupart des gens qui sont nouveaux à Docker feront cette erreur et penseront que le conteneur sera détruit après avoir quitté le conteneur, mais en fait, ce n'est pas le cas.
Si nous souhaitons entrer à nouveau ce conteneur, nous pouvons exécuter la commande suivante, veuillez copier votre propre contenant ID.
docker exec -it Container ID bash
Bien que le conteneur soit toujours en cours d'exécution, il n'est pas persisté. Pour éviter que cela ne se produise, il sera persisté dès que possible après avoir modifié le contenu dans le conteneur.
docker commit conteneur id java
Cette commande signifie persister notre conteneur en une nouvelle image, appelée Java.
Démarrez cette image nouvellement créée.
docker run -it -p 8080: 8080 java
Faites attention au changement dans notre commande de démarrage et il y a une commande -p supplémentaire. Cette commande signifie exposer le port 8080 dans le conteneur de l'hôte.
Visitez à nouveau 0.0.0.0:8080 et nous pouvons voir le petit chat, c'est tellement mignon.
Que dois-je faire si le conteneur occupait toujours notre mémoire tout à l'heure? Tuez-le.
ID de conteneur Docker RM
Notre première étape est terminée, et ensuite nous intégrerons notre code.
7. Code intégré
Le conteneur que nous venons de démarrer est une boîte noire complètement indépendante, qui n'a aucune idée de l'endroit où est notre code, nous devons donc utiliser le volume de montage de Docker afin que l'hôte et le conteneur puissent partager le répertoire.
Désolé, nous allons tuer le conteneur que nous venons de recommencer.
docker run -it -v / utilisateurs / nom / web: / opt / root -p 8080: 8080 java
Notre commande de démarrage a ajouté un nouveau membre -v. La signification de cette commande est d'accrocher le répertoire Web sous le répertoire racine de l'utilisateur dans le conteneur du répertoire / opt / racine.
Après être entré dans le répertoire, nous pouvons constater que les fichiers du répertoire Web se trouvent tranquillement à l'intérieur, comme Mary Sue qui dort depuis de nombreuses années attend votre appel.
Commencez à appeler.
MVN Clean Installer -u -Ploal -Dskiptests
Après une période de temps, nous verrons une invite à un emballage réussi. Copiez le package de guerre dans le répertoire Tomcat WebApps et vous pouvez accéder à votre projet.
À ce stade, notre projet a finalement commencé à fonctionner, mais il y a plusieurs problèmes.
1. Devez-vous exécuter une si longue commande à chaque fois? Très gênant.
2. Chaque fois que vous modifiez le code, il doit être reconditionné, ce qui prend beaucoup de temps.
3. Comment lire le journal de démarrage? Que dois-je faire si je signale une erreur?
4. Comment modifier le fichier de modèle frontal sans redémarrer le service?
Sur la base de ces problèmes, nous devons écrire un script pour les résoudre.
8. Script Shell
Le script fournira les instructions suivantes
-y mise à jour maven package-compile-package-libéré-start tomcat
-P Tomcat-start-start compilage-pack-release-start
-R Redémarrer Tomcat
-C Recompile Fichier Java - Release - Démarrez Tomcat
-W écoute les fichiers VM, synchronisation par défaut 5S une fois
-l Voir le journal Tomcat
-H aide
# Variables qui doivent être modifié ######################################################## ################################################################ ############################################################### ################################################################ ############################################################### ################################################################ ############################################################### ################################################################ Adresse de démarrage du projet tom_root = "$ {tom_url} / webapps" # Intervalle d'écoute de fichiers, unité wt = 5 # copier vmwc_vm = "src / main / webApp / web-inf / tpl / usr / share / tomcat7 / webapps / root / web-inf /" # copier classwc_java = "cible / classes / usr / share / tomcat7 / webapps / root / web-inf / "# méthode générale # # # use nouvelle fonction package newwar () {# delete old package rm -rf $ {tom_root} / * # move war pack # Démarrer le service $ {tom_url} /bin/startup.sh # Entrez le journal de démarrage de la queue -f $ {Tom_Url} /logs/catalina.out} # Traitement de la directive While Getopts ": yprcwlh" OptNamedo Case "$ optname" dans "y") - Dev} - Dev} - Dev} - Dev} - Dev. Newwar Restart ;; "P") Echo "Remackage" Package MVN Clean -p $ {Dev} -dskiptests Newwar Restart ;; "r") echo "redémarrer tomcat" redémarrer ;; "C") echo "Recompile et redémarrer le service" MVN Clean Compile -p $ {dev} -dskiptests cp -r $ {wc_java} redémarrer ;; "w") echo "Commencez à écouter les fichiers VM" # Écoutez VM watch -n $ {wt} cp -r $ {wc_vm} ;; "l") echo "Login" # écouter VM Tail -f $ {tom_url} /logs/catalina.out ;; "H") Echo "-y Update Maven Package-Compile-Package-Release-Start One-Stop Service" Echo "-P Compile et la version Package Démarrer le service One-Stop" ECHO "-R redémarrer Tomcat" Echo "-C Re-Java Fichier et Déployer le service de redémarrage" Echo "-L Logs Logs" Echo " ;; ESAC 9. Promouvoir auprès de l'équipe
Après les trois étapes ci-dessus, nos outils ont été construits, mais comment les autres peuvent-ils les utiliser?
Docker fournit des services cloud. Si notre image est suffisamment petite, nous pouvons pousser l'image vers le cloud pour que les autres puissent télécharger et exécuter, mais notre image a dépassé 1G. . . Nous ne pouvons donc pas utiliser cette méthode.
Docker Save Java -o ./java.tar
Utilisez la commande ci-dessus pour persister l'image dans le fichier local java.tar, puis transférez-le vers les machines d'autres camarades de classe par d'autres moyens. Nous utilisons AirDrop, quelques minutes de choses.
docker load -i java.tar
D'autres étudiants peuvent utiliser cette commande pour charger notre image dans son docker.
Intégrez ensuite le script shell dans le répertoire Root du projet et vous pouvez l'utiliser avec bonheur.
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article sera d'une aide à votre étude ou à votre travail. Si vous avez des questions, vous pouvez laisser un message pour communiquer.