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:16] 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 142: | Línia 129: | ||
| Explicar com arreglar-lo | 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 147: | 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 }} | ||