[JAVA] J'ai créé un conteneur Docker pour exécuter Maven

Créez une image Docker qui peut exécuter Apache Maven à l'aide d'Oracle Java publiée sur le Docker Store

La description

Apache Maven est un outil bien connu pour les outils de gestion de projet (gestion de construction et de configuration) pour les projets Java. Pour utiliser ce Maven, il est généralement nécessaire d'installer Java, d'installer Maven, de transmettre le chemin et de définir JAVA_HOME et MAVEN_HOME. Nous avons préparé à l'avance une série d'environnements sous forme d'images Docker. En utilisant cela, vous pourrez construire un projet Maven sans Maven installé.

L'environnement Maven préparé ici utilise Java 8 fourni par Oracle publié sur le Docker Store comme runtime Java. Je vais.

Vous trouverez ci-dessous les informations de version pour Java et Maven.

--Java: Oracle JDK 8 (1.8.0_131: dernière version d'image en juillet 2017)

Image d'opération

Ceci est une image d'opération de construction d'un projet avec Maven dans un conteneur Docker dans un environnement où Maven n'est pas installé:

Demo

supposition

Oracle JDK 8

introduction

Obtenir l'image publiée sur Docker Hub

docker pull shinyay/docker-mvn-jdk8:3.5.0

comment utiliser

Montez le projet Maven dans votre environnement hôte dans un conteneur Docker, déplacez votre répertoire de travail vers le point de montage et exécutez la commande Maven.

docker run -it --rm -v [chemin du projet Maven dans l'environnement hôte]: [point de montage dans l'environnement conteneur] -w [point de montage dans l'environnement conteneur] shinyay / docker-mvn-jdk8: 3.5.0 mvn [ OBJECTIF MAVEN]

Option Docker

Exemple 1: mvn clean

docker run -it --rm -v /home/shinyay/works/mvn-projects/mvn-webapp/mytest-app:/usr/src/mvnproject -w /usr/src/mvnproject shinya/mvn:3.5.0 mvn clean

Exemple 2: package mvn

docker run -it --rm -v /home/shinyay/works/mvn-projects/mvn-webapp/mytest-app:/usr/src/mvnproject -w /usr/src/mvnproject shinya/mvn:3.5.0 mvn package

Résumé

Ceci est utile lorsque vous utilisez une image virtuelle qui n'inclut pas Maven.

L'amélioration future est que le référentiel n'est pas mis en cache après l'exécution de Maven, donc lorsque vous essayez de l'exécuter à nouveau, les bibliothèques dépendantes seront réacquises. Cependant, ce serait bien de le partager avec le référentiel Maven dans l'environnement hôte.

Recommended Posts

J'ai créé un conteneur Docker pour exécuter Maven
Exécuter PureScript sur un conteneur Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
J'ai créé une image Docker pour la version japonaise de SDAPS
J'ai fait une méthode pour demander la prime vendredi
Créer un conteneur Docker pour convertir EPS en source PGF
J'ai créé une application de chat.
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
J'ai essayé de créer un environnement de développement padrino avec Docker
J'ai créé un Dockerfile pour démarrer Glassfish 5 en utilisant Oracle Java
Introduction à Linux Container / Docker (Partie 1)
Étapes pour exécuter Docker sur Mac
J'ai créé une application shopify @java
J'ai créé une interface graphique avec Swing
Pour exécuter JavaFX sur Docker
Introduction à Linux Container / Docker (Partie 2)
J'ai fait une simple fonction de recommandation.
Comment faire un projet Maven
J'ai créé une application correspondante (application Android)
J'ai créé un outil de génération package.xml.
[Android] J'ai créé une application de podomètre.
J'ai essayé d'intégrer parfaitement Docker et Maven / Netbean en utilisant Jib
J'ai fait un petit bijou pour poster le texte du mode org sur qiita
Création d'une méthode pour demander Premium Friday (version Java 8)
J'ai créé un outil pour afficher la différence du fichier CSV
Je ne peux plus me connecter à une VM avec un conteneur Docker pouvant se connecter via SSH
Quand j'ai essayé de composer une mise à jour dans le conteneur Docker, je me suis fâché avec proc_open (): fork a échoué
Je souhaite développer une application web!
Docker push vers GitHub Container Registry (ghcr.io)
Je veux écrire un joli build.gradle
[Ruby] J'ai créé un simple client Ping
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Je veux écrire un test unitaire!
Comment créer un référentiel Maven pour 2020
J'ai créé un bot de transaction d'arbitrage de monnaie virtuelle et essayé de gagner de l'argent
Exécutez des applications x11 dans un conteneur Docker (prend en charge l'accès réseau à partir du conteneur)
J'ai fait une mort risquée avec Ruby
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
Créez un projet Maven à la hâte à l'aide du conteneur Docker de Maven
J'ai créé un plug-in pour IntelliJ IDEA
J'ai créé une application Janken avec kotlin