使用 Docker 验证 Oracle 包(在管道中)
确保我们的应用程序包在生产阶段没有错误的正确方法;是在预生产(或 UAT)环境中提前编译它们。 但如果我们必须手动进行,则有可能绕过一些_脚本_或验证。 因此,自动化这一步在我们的 CI/CD 操作中至关重要。 作为第一点,它是有一个初始数据库。它只能包含表的结构,这样我们就可以减小_export_ 的大小。 我们在 Docker 映像中执行 import: FROM docker.io/gven
·
确保我们的应用程序包在生产阶段没有错误的正确方法;是在预生产(或 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
更多推荐
已为社区贡献13073条内容
所有评论(0)