【发布时间】:2020-11-16 22:36:12
【问题描述】:
我想针对 Azure 管道内的本地 Docker 托管的 SQL Server 2019 数据库运行集成测试。我正在尝试将 sqlpackage 复制到此 Docker 映像,以便每次都可以恢复 .bacpac 以便在测试之前设置数据库。这是我到目前为止的 YAML 配置:
azure-pipelines.yml:
resources:
containers:
- container: 'sqlserver_linux_container_for_integration_tests'
image: 'mcr.microsoft.com/mssql/server:2019-CU5-ubuntu-16.04'
ports:
- 1433:1433/tcp
env:
ACCEPT_EULA: 'Y'
SA_PASSWORD: 'P@ssW0rd!'
trigger:
- azure-pipelines
pool:
vmImage: 'ubuntu-16.04'
variables:
buildConfiguration: 'Release'
steps:
- task: Bash@3
displayName: 'Echo some Docker info from bash'
inputs:
targetType: 'inline'
script: |
echo 'docker info'
docker info
echo 'docker ps'
docker ps
- task: Docker@2
displayName: 'Copy sqlpackage to Docker SQL Server'
inputs:
command: 'cp'
arguments: '$(Agent.BuildDirectory)/s/DBProject/_TestDb_/sqlpackage-linux/sqlpackage sqlserver_linux_container_for_integration_tests:/tmp/sqlpackage'
我想从我的Docker@2 步骤访问 Docker 容器sqlserver_linux_container_for_integration_tests,以便将 sqlpackage 二进制文件复制到其中 - 稍后将复制数据库 .bacpac,并运行 sqlpackage 以从中恢复数据库- 但我收到错误“错误:没有这样的容器:路径:sqlserver_linux_container_for_integration_tests:/tmp”。因此,看起来 Docker 容器没有启动,或者它没有对我的任务可用。另外,第一个任务中的docker ps没有显示输出。
那么我怎样才能使 Docker 容器可供我的任务用于将文件复制到其中并在其上执行命令?
【问题讨论】:
标签: azure docker continuous-integration azure-pipelines