Azure devops 通过Dockerfile在Azure DevOps管道中运行Cypress测试

Azure devops 通过Dockerfile在Azure DevOps管道中运行Cypress测试,azure-devops,azure-pipelines,cypress,Azure Devops,Azure Pipelines,Cypress,我创建了一个Dockerfile,用于创建cypress映像、安装所有依赖项、复制必要的文件夹和CMD命令以运行测试。我能够在本地构建docker映像,并在本地运行映像时运行测试 我正在Azure Devops管道中尝试运行测试。我使用我创建的Dockerfile创建了一个新管道。在我的管道中,我能够获得要构建的cypress映像,但是在映像构建之后,测试不会运行 我错过了什么?在管道中内置映像后,我是否需要运行映像?如果是这样,我会在yaml文件中这样做吗?在运行映像时执行CMD指令。映像生成

我创建了一个Dockerfile,用于创建cypress映像、安装所有依赖项、复制必要的文件夹和CMD命令以运行测试。我能够在本地构建docker映像,并在本地运行映像时运行测试

我正在Azure Devops管道中尝试运行测试。我使用我创建的Dockerfile创建了一个新管道。在我的管道中,我能够获得要构建的cypress映像,但是在映像构建之后,测试不会运行


我错过了什么?在管道中内置映像后,我是否需要运行映像?如果是这样,我会在yaml文件中这样做吗?

在运行映像时执行CMD指令。映像生成后无法自动运行。所以你必须使用docker run

您可以使用powershell任务来运行docker生成和运行命令,而不是docker任务

在下面的示例中,我运行
docker build
命令来构建我的dockerfile,然后运行docker run命令来启动我的映像。然后,我可以从powershell任务摘要日志中查看执行结果

- powershell: |
    cd $(system.defaultworkingdirectory) #cd to the directory where dockerfile resides.
    docker build -t myapp .
    docker run --rm myapp
如果要使用docker任务构建docker文件,还可以尝试使用
RUN
执行Cypress测试,而不是将测试执行命令放入docker文件中的
CMD
命令中,只有在运行映像时才能执行该命令