是否可以从 Azure 管道容器作业内部运行 Docker 命令?



Azure Pipelines 支持容器化作业

我尝试在容器作业中运行 Docker 命令:

pool:
vmImage: 'ubuntu-16.04'
container: ubuntu:16.04
steps:
- script: docker ps

我收到一个错误说command not found: docker,这是有道理的,因为从 Docker 容器内部运行 Docker 不是一个标准用例。

但是,我需要在容器内运行作业才能使用特定的构建工具,并且还需要从该容器内部发布 Docker 映像。

是否有可能实现它 Azure 管道?

基本上,你需要做的是这样的:

  1. 为生成代理创建 dockerfile
  2. 将其用作构建代理容器或将其托管在某个地方作为真正的构建代理。 在后一种情况下,您需要将主机 docker 映射到容器:
volumeMounts:
- mountPath: /docker-volume
name: docker-in-docker
- mountPath: /var/run/docker.sock
name: docker-volume
volumes:
- name: docker-in-docker
hostPath:
path: /agent
- name: docker-volume
hostPath:
path: /var/run/docker.sock

您需要套接字和主机路径,因为如果要将目录映射到容器,它们必须存在于主机上,没有文件夹共享的 docker 构建就可以了

最新更新