当前位置: 首页 > 知识库问答 >
问题:

如何在Azure管道中运行docker容器?

云煌
2023-03-14

Azure文档(https://docs.microsoft.com/en-us/Azure/devops/pipelines/tasks/build/docker?view=azure-devops)没有指定如何在Azure pipeline中运行docker容器。我们可以使用docker@2任务来构建/推送docker图像,但它没有运行容器的命令。通过查看旧版本Docker task的源代码,我可以看到有一个run命令,但这些命令现在已经被废弃,而且没有文档可查。

pool:
  vmImage: 'ubuntu-16.04'

container:
  image: somerepo/rnd-hello:latest
  endpoint: my-acr

steps:
- script: printenv

但我无法让集装箱运行。

共有1个答案

郭洋
2023-03-14

显然,问题中提到的配置将拉出图像并在容器中运行步骤(在本例中是脚本中的printenv命令)。一个临时工作目录将自动挂载,它将在该目录中运行。但是,这不会运行容器本身。(cmd命令在Dockerfile中定义不会执行)

为了运行容器本身,我们必须使用docker@2内置任务登录到docker注册表,然后以脚本的形式手动执行docker run。这里有一个例子,

trigger: none

jobs:
- job: RunTest
  workspace:
    clean: all
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - task: Docker@2
    displayName: Login to ACR
    inputs:
      command: login
      containerRegistry: my-acr
  - script: |
      docker run my-registry.azurecr.io/somerepo/rnd-hello:latest 
 类似资料:
  • 问题内容: 我想在Docker容器中运行Jenkins。一切都好。我可以这样运行:我也可以添加持久性存储。当我创建管道必须执行命令(和)时,问题就来了。首先,错误是未在系统上安装docker。是的,期望。然后我开始搜索,发现如何在容器中运行docker(传递2个持久卷): 这可以运行,但是有一些例外。容器中有命令,但是当我尝试运行它时,它将引发异常: 我该如何解决这个问题?在Docker中安装Je

  • 最近,我的工作场所一直在从CircleCI过渡到Azure管道,因此我们一直在迁移我们所有的CI。虽然大多数人都有些直截了当,但这种特殊的管道需要在docker映像中运行我们的linux作业。以下是CircleCI中的内容: 这是它目前在Azure管道中的样子: 在最后一个脚本期间,任何尝试运行没有“apt-get”行的脚本都会失败,从而产生错误:退出代码:ENOENT。spawn icns2pn

  • 我想通过 Azure CD 管道运行一些 Cosmos db 脚本,作为 Java Spring启动部署过程的一部分。我偶然发现了本文档部署到 Azure 数据库,但不确定它是否也适用于宇宙数据库。其次,有没有其他方法可以实现相同的目标。

  • 问题内容: 我正在研究Centos7。我有一个运行Jenkins的Docker容器。在那个Jenkins容器中,我必须构建并运行其他Docker容器。但是詹金斯不认识码头工人。我能够执行一个shell并将docker安装在容器中。但是,是否有可能让容器在主机上使用我的docker- engine?如何使用? 在Jenkins-(docker)-容器中安装Docker的最佳选择是什么? 问题答案:

  • 问题内容: 我正在尝试建立一个jenkins多分支管道以在docker容器中运行我所有的代码验证步骤,然后构建docker映像并将其推送到所述docker容器之外。 目前,我的Jenkinsfile看起来像这样(为了便于阅读而进行了缩减): 这里的问题是我使用dockerfile代理的每个阶段,jenkins都会尝试重建docker映像。这些阶段都已缓存,但是发送构建上下文并实际处理所有内容仍然比

  • 我有以下docker文件,它运行: 问题是,目前我必须首先在主机上运行 ,以便在路径的本地计算机上创建 jar 文件: 我如何将这个< code>gradle clean build放入我的docker文件中,以便构建步骤在容器内部完成? 编辑: 我希望用户的步骤是: < li >从< code>github克隆我的项目 < li >运行< code>docker build -t pokerst