Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
docker_java [2022/07/08 16:11] antonio_duenas [Exercicis] |
docker_java [2022/07/08 17:10] (actual) antonio_duenas [Referències] |
||
---|---|---|---|
Línia 1: | Línia 1: | ||
- | ====== | + | ====== |
- | En aquest article "dockeritzarem" | + | En aquest article |
{{ 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' | + | Pot ser d' |
{{ java_error2.png }} | {{ java_error2.png }} | ||
Línia 68: | Línia 68: | ||
\\ | \\ | ||
- | ===== Executar una aplicació Java basada en Mavel en Docker ===== | + | ===== Executar una aplicació Java basada en Maven en Docker ===== |
- | El Dockerfile permet crear la imatge del contenidor. | + | Amb la següent configuració de **Dockerfile** podem executar Maven en Docker |
- | <file Dockerfile Dockerfile> | + | FROM maven:3.8-jdk-11 |
- | # We Use an official Python runtime as a parent image | + | RUN mkdir /project |
- | FROM python:3.8-slim | + | COPY . /project |
+ | | ||
+ | RUN mvn clean package -DskipTests | ||
+ | CMD [" | ||
- | # install db libs | + | FROM cerca la imatge que es necessita a Docker Hub. En aquest cas, una de Maven. |
- | RUN apt-get update | + | |
- | RUN apt-get install -y default-mysql-client libmariadb-dev | + | |
- | RUN apt-get install -y libmariadb-dev-compat gcc gdal-bin libjpeg-dev | + | |
- | # install app libs | + | Enllaç a les versions de Maven que hi ha a Docker Hub: [[https:// |
- | COPY requirements.txt requirements.txt | + | |
- | RUN pip3 install --no-cache-dir -r requirements.txt | + | |
- | # Mounts the application code to the image | + | RUN per executar Maven |
- | COPY . code | + | |
- | # establish workdir | + | CMD per executar el codi Java a partir del .jar |
- | WORKDIR /code | + | |
- | EXPOSE 8000 | + | La resta de passos són els mateixos, crear la imatge Docker amb «docker build» i executar-la amb «docker run» |
- | # runs the development server | + | \\ |
- | ENTRYPOINT [" | + | |
- | CMD [" | + | |
- | </ | + | |
- | Fixeu-vos | + | ===== Executar una aplicació Java basada |
- | El docker-compose ens facilita | + | Amb la següent configuració de **Dockerfile** podem executar Gradle |
- | <file yaml docker-compose.yml> | + | FROM gradle:7.4-jdk11 |
- | version: '3.1' | + | RUN mkdir /project |
+ | | ||
+ | WORKDIR /project | ||
+ | RUN gradle build | ||
+ | CMD [" | ||
- | services: | + | FROM cerca la imatge que es necessita a Docker Hub. En aquest cas, una de Gradle. |
- | django_app: | + | Enllaç a les versions de Gradle que hi ha a Docker Hub: [[https://hub.docker.com/_/gradle? |
- | build: . | + | |
- | restart: always | + | |
- | ports: | + | |
- | - 8000:8000 | + | |
- | environment: | + | |
- | - DATABASE_URL=sqlite:///db.sqlite3 | + | |
- | - DEBUG=False | + | |
- | - SECRET_KEY=asecretkeyblabla | + | |
- | volumes: | + | |
- | - ./db.sqlite3:/code/ | + | |
- | </ | + | RUN per executar Gradle |
- | Per posar-ho en marxa primer cal crear un arxiu on persistir | + | CMD per executar el codi Java a partir del .jar |
- | $ touch db.sqlite3 | + | |
- | $ docker-compose up -d --build | + | La resta de passos són els mateixos, |
\\ | \\ | ||
Línia 134: | Línia 121: | ||
<WRAP todo> | <WRAP todo> | ||
Crear una aplicació Java, generar el .jar i executar-la en Docker | Crear una aplicació Java, generar el .jar i executar-la en Docker | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | Quan s'ha executat un .jar en Docker ha donat aquest error. | ||
+ | |||
+ | {{ error_docker_java.png }} | ||
+ | |||
+ | Explicar com arreglar-lo | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | Crear una aplicació Java, usar Maven, generar el .jar i executar en Docker | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP todo> | ||
+ | Crear una aplicació Java, usar Gradle, generar el .jar i executar en Docker | ||
</ | </ | ||
Línia 139: | Línia 143: | ||
===== Referències ===== | ===== Referències ===== | ||
- | * [[Django]] | + | * Build your Java image: |
- | * [[Docker]] | + | * Run the Java application in a Docker 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:// |
+ | |||
+ | * (Maven) Build Docker image and run tests: | ||
{{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }} | {{tag> #Ciber #CiberMp03 #Ceti #CetiMp03 docker java }} | ||