commit inicial
This commit is contained in:
parent
c329080e0c
commit
0b68d8059f
49
.github/workflows/ci-cd.yml
vendored
49
.github/workflows/ci-cd.yml
vendored
@ -1,49 +0,0 @@
|
|||||||
name: Primer flujo de trabajo CI/CD (Build, Test and Push Docker Image) para Ampliación de Entornos de Desarrollo
|
|
||||||
|
|
||||||
# ===== Permisos del token automático de GitHub para que pueda "subir"(push del paso 4.) la imagen docker generada en el paso 3.
|
|
||||||
# ===== La imagen se subirá al área de registro de GitHub ghcr.io/profies/aaee_mapamundi_sb =====
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
# ===== Disparadores del workflow =====
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- '**' # Cualquier rama
|
|
||||||
|
|
||||||
# ===== Tareas del workflow =====
|
|
||||||
jobs:
|
|
||||||
build-and-push:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# 1. Descarga código
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
# 2. JDK/Maven para tests previos
|
|
||||||
- name: Configución pasar TEST
|
|
||||||
uses: actions/setup-java@v3
|
|
||||||
with:
|
|
||||||
distribution: temurin
|
|
||||||
java-version: 23
|
|
||||||
|
|
||||||
- name: Construir proyecto con Maven
|
|
||||||
run: mvn clean package
|
|
||||||
|
|
||||||
# 3. Construir la imagen Docker usando el Dockerfile
|
|
||||||
- name: Build Docker image
|
|
||||||
run: docker build -t ghcr.io/${{ github.repository }}:latest .
|
|
||||||
|
|
||||||
# 4. Push a GHCR (GitHub Container Registry)
|
|
||||||
- name: Push Docker image
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Push image
|
|
||||||
run: docker push ghcr.io/${{ github.repository }}:latest
|
|
||||||
27
Dockerfile
27
Dockerfile
@ -1,27 +0,0 @@
|
|||||||
# ====== Etapa 1: Fase de construcción (es temporal)======
|
|
||||||
# Usamos una imagen de Maven con JDK 23 para construir la aplicación
|
|
||||||
FROM maven:3.9-eclipse-temurin-23 AS imagen_construccion
|
|
||||||
|
|
||||||
#
|
|
||||||
WORKDIR /app
|
|
||||||
COPY pom.xml .
|
|
||||||
|
|
||||||
COPY src ./src
|
|
||||||
RUN mvn clean package
|
|
||||||
|
|
||||||
# ====== Etapa 2: Fase de ejecución (con la que generará la imagen) ======
|
|
||||||
# En teoría sólo necesitamos la JRE para ejecutar la aplicación (ojo, a veces puede dar problemas y se usa la JDK )
|
|
||||||
# No se necesita el entorno de construcción completo (Maven + JDK + src), sólo el resultado de la construcción (el .jar) y un entorno de ejecución (JRE)
|
|
||||||
FROM eclipse-temurin:23-jre AS imagen_ejecucion
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copia el jar generado: lo que se obtendría (aaee_mapamundi-0.0.1.jar según el pom.xml) se copia como app.jar
|
|
||||||
# LA idea es simplificar el comando de arranque
|
|
||||||
COPY --from=imagen_construccion /app/target/*.jar app.jar
|
|
||||||
|
|
||||||
|
|
||||||
# Comando de arranque
|
|
||||||
# En las actividades anteriores se ejectuaba el comando "java -jar target/aaee_mapamundi-0.0.1.jar" (info en el pom.xml) para iniciar la aplicación
|
|
||||||
# Aquí se hace lo mismo pero apuntando al jar copiado en esta etapa
|
|
||||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
|
||||||
Loading…
Reference in New Issue
Block a user