确保我们的应用程序包在生产阶段没有错误的正确方法;是在预生产(或 UAT)环境中提前编译它们。

但如果我们必须手动进行,则有可能绕过一些_脚本_或验证。

因此,自动化这一步在我们的 CI/CD 操作中至关重要。


作为第一点,它是有一个初始数据库。它只能包含表的结构,这样我们就可以减小_export_ 的大小。

我们在 Docker 映像中执行 import:

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

进入全屏模式 退出全屏模式

接下来,我们将运行脚本(DDL 和 DML)。接下来,我们将编译所有的包。

如果有无效数据包,Pipeline 将失败。这将是验证它们的方法。

图片说明

以下是 azure-pipeline.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

进入全屏模式 退出全屏模式


您可以在以下视频中看到执行:


文档

https://gitlab.com/edgar.gs/posunificado-docker-oracle11g.git

https://hub.docker.com/r/gvenzl/oracle-xe

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐