bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


docker_java

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
docker_java [2022/07/08 16:34]
antonio_duenas [Executar una aplicació Java basada en Maven en Docker]
docker_java [2022/07/08 17:10] (actual)
antonio_duenas [Referències]
Línia 1: Línia 1:
-====== Dockeritzant una aplicació Java ======+====== Dockeritzar aplicacions Java ======
  
-En aquest article "dockeritzaremuna aplicació Java.+En aquest article veurem com "dockeritzaraplicacions Java.
  
 {{ java-docker.png }} {{ java-docker.png }}
Línia 7: Línia 7:
 {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }} {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }}
  
-Pot ser d'utilitat perquè molts cops es desenvolupa i compila el codi usant una versió de Java i JDK que l'usuari no té instal.lada.+Pot ser d'utilitat perquè molts cops es desenvolupa i compila el codi usant una versió de Java i JDK que l'usuari no té instal.lada, fent que no funcioni quan s'executa.
  
 {{ java_error2.png }} {{ java_error2.png }}
Línia 70: Línia 70:
 ===== Executar una aplicació Java basada en Maven en Docker ===== ===== Executar una aplicació Java basada en Maven en Docker =====
  
-Amb la següent configuració de Dockerfile podem executar Maven en Docker+Amb la següent configuració de **Dockerfile** podem executar Maven en Docker
  
    FROM maven:3.8-jdk-11    FROM maven:3.8-jdk-11
Línia 77: Línia 77:
    WORKDIR /project    WORKDIR /project
    RUN mvn clean package -DskipTests    RUN mvn clean package -DskipTests
-   CMD ["java", "-jar","app.jar"]+   CMD ["java", "-jar","app_maven.jar"]
  
 FROM cerca la imatge que es necessita a Docker Hub. En aquest cas, una de Maven. FROM cerca la imatge que es necessita a Docker Hub. En aquest cas, una de Maven.
  
-Enllaç a les versions d'OpenJDK que hi ha a Docker Hub: [[https://hub.docker.com/_/maven?tab=tags]]+Enllaç a les versions de Maven que hi ha a Docker Hub: [[https://hub.docker.com/_/maven?tab=tags]]
  
 RUN per executar Maven RUN per executar Maven
 +
 +CMD per executar el codi Java a partir del .jar
 +
 +La resta de passos són els mateixos, crear la imatge Docker amb «docker build» i executar-la amb «docker run» 
 +
 +\\
 +
 +===== Executar una aplicació Java basada en Gradle en Docker =====
 +
 +Amb la següent configuració de **Dockerfile** podem executar Gradle en Docker
 +
 +   FROM gradle:7.4-jdk11
 +   RUN mkdir /project
 +   COPY . /project
 +   WORKDIR /project
 +   RUN gradle build
 +   CMD ["java", "-jar", "app_gradle.jar"]
 +
 +FROM cerca la imatge que es necessita a Docker Hub. En aquest cas, una de Gradle.
 +
 +Enllaç a les versions de Gradle que hi ha a Docker Hub: [[https://hub.docker.com/_/gradle?tab=tags]]
 +
 +RUN per executar Gradle
  
 CMD per executar el codi Java a partir del .jar CMD per executar el codi Java a partir del .jar
Línia 106: Línia 129:
  
 Explicar com arreglar-lo Explicar com arreglar-lo
 +</WRAP>
 +
 +<WRAP todo>
 +Crear una aplicació Java, usar Maven, generar el .jar i executar en Docker
 +</WRAP>
 +
 +
 +<WRAP todo>
 +Crear una aplicació Java, usar Gradle, generar el .jar i executar en Docker
 </WRAP> </WRAP>
  
Línia 111: Línia 143:
  
 ===== Referències ===== ===== Referències =====
-  * [[Django]] primer de tot cal seguir aquest article per disposar d'una app Django apta per a ser dockeritzada, en particular amb els ajustos per utilitzar les variables d'entorn (django-environ). +  * Build your Java image: [[https://docs.docker.com/language/java/build-images/]] 
-  * [[Docker]] +  * Run the Java application in a Docker container: [[https://www.jetbrains.com/help/idea/running-a-java-app-in-a-container.html#run_java_app_in_container]] 
-  * [[https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/|Un bon article de com dockeritzar Django amb Nginx i Gunicorn]]. + 
-  * [[https://programacionymas.com/blog/docker-diferencia-entrypoint-cmd|Utilitzant ENTRYPOINT i CMD en Dockerfile]]+  * Dockerizing Java Apps using Jib: [[https://www.baeldung.com/jib-dockerizing]] 
 + 
 +  * (Maven) Build Docker image and run tests: [[https://maven.apache.org/surefire/maven-surefire-plugin/docker.html]]
  
 {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }} {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }}
  
docker_java.1657298047.txt.gz · Darrera modificació: 2022/07/08 16:34 per antonio_duenas