【发布时间】:2021-11-30 07:45:46
【问题描述】:
我们的构建代理正在运行 Podman 3.4.2,并且每个终端会话都有一个全局别名,它只是将 docker 替换为 podman,因此命令 docker --version 会产生 podman version 3.4.2。
目标是将 podman 用于 Azure DevOps 管道中的 Docker@2 任务:
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: aspnet-web-mhi
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
事实证明,我的假设有点天真,因为 ado_agent 没有这个假设:
##[错误]未处理:无法找到可执行文件:'docker'。请验证文件路径是否存在,或者该文件是否可以在 PATH 环境变量指定的目录中找到。还要检查文件模式以验证文件是否可执行。
有没有办法让替换工作不费吹灰之力?如果可以避免的话,我会避免自己编写所有脚本以使用 podman 而不是 docker 并将其推送到注册表。
【问题讨论】:
-
您是否尝试过将 docker 符号链接到 podman?还是创建一个可执行的 bash 脚本,将所有参数从它传递给 podman?
-
不,我没有。
标签: azure-devops azure-pipelines podman