Logo

dev-resources.site

for different kinds of informations.

Validar paquetes de Oracle con Docker (en un pipeline)

Published at
8/30/2022
Categories
oracle
azure
devops
docker
Author
Edgar Rios Navarro
Categories
4 categories in total
oracle
open
azure
open
devops
open
docker
open
Validar paquetes de Oracle con Docker (en un pipeline)

La forma correcta de asegurar que los paquetes de nuesta aplicaci贸n, no tengan errores durante el Pase a Producci贸n; es compilarlos anticipadamente en un ambiente Pre-Producci贸n (o UAT).

Pero si lo tenemos que hacer manualmente, existe la posibilidad de obviar alg煤n script o validaci贸n.

De manera que, automatizar este paso es crucial en nuestra operaci贸n de CI/CD.

Como primer punto, es tener una base de datos inicial. Puede contener solo la estructura de las tablas y con ello reducimos el tama帽o del export.

Realizamos el import en una imagen de Docker:

FROM docker.io/gvenzl/oracle-xe:11

Luego, ejecutaremos los scripts (DDL y DML). A continuaci贸n, compilaremos todos los paquetes.

De haber paquetes inv谩lidos, el Pipeline fallar谩. Esa ser谩 la forma de validarlos.

Image description

Este es un ejemplo del archivo azure-pipelin.yml:

# Build Docker image for this app, to be published to Docker Registry
pool:
  vmImage: 'ubuntu-latest'
variables:
  buildConfiguration: 'Release'
steps:
- script: |
    git clone https://gitlab.com/edgar.gs/posunificado-docker-oracle11g.git
    cd posunificado-docker-oracle11g
    git checkout 5a9d701c0492841e734ee08dd1de10f6d652578d
- task: CopyFiles@2
  inputs:
    SourceFolder: 'posunificado-docker-oracle11g/DOCKER/init_scripts'
    contents: '**'
    targetFolder: 'fps-app-bd-posunificado/DOCKER/init_scripts'
- task: ExtractFiles@1
  inputs:
    archiveFilePatterns: 'posunificado-docker-oracle11g/DOCKER/PTOVENTA_V1.7.2.DMP.zip'
    destinationFolder: 'fps-app-bd-posunificado'
    cleanDestinationFolder: false
    overwriteExistingFiles: false 
- script: |
    cd fps-app-bd-posunificado
    docker build -f Dockerfile -t ptoventa-build:$BUILD_BUILDID .
    docker run --name ptoventadb ptoventa-build:$BUILD_BUILDID
- script: |
    docker start ptoventadb
    docker cp ptoventadb:/u01/app/oracle/artifacts $(System.DefaultWorkingDirectory)
    docker stop ptoventadb

- task: CopyFiles@2
  inputs:
    contents: '**/*.log'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

Se puede observar la ejecuci贸n en el siguiente video:

Documentaci贸n

https://gitlab.com/edgar.gs/posunificado-docker-oracle11g.git
https://hub.docker.com/r/gvenzl/oracle-xe

Featured ones: