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