首页 > 解决方案 > 如何使用 cirrus-ci 创建 docker multiarch 清单?

问题描述

我正在尝试使用Cirrus CI构建多架构清单,所以我需要启用docker 实验选项
但是 docker 的实验选项没有考虑在内。

在 .cirrusci.yml 我有类似的东西:

publish_docker_builder:
  script: | 
    mkdir -p $HOME/.docker
    echo '{ "experimental": "enabled" }' > $HOME/.docker/config.json
    docker info
    docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS 
    docker manifest create --amend $CIRRUS_REPO_FULL_NAME:latest $CIRRUS_REPO_FULL_NAME:linux  $CIRRUS_REPO_FULL_NAME:rpi  $CIRRUS_REPO_FULL_NAME:windows

但执行报告:

mkdir -p $HOME/.docker
echo '{ "experimental": "enabled" }' > $HOME/.docker/config.json
....
Labels:
Experimental: false
....
docker manifest create is only supported on a Docker cli with experimental cli features enabled

完整的日志是https://api.cirrus-ci.com/v1/task/6577836603736064/logs/main.log

这是对 Cirrus CI 中可用的 dockerd 的限制还是我做了一些错误的配置?

标签: dockermultiarchcirrus-ci

解决方案


docker cli 似乎改变了启用实验功能cli的方式

DOCKER_CLI_EXPERIMENTAL 为 cli 启用实验性功能(例如启用或禁用)

添加到 .cirrusci.yml :

  env:
    DOCKER_CLI_EXPERIMENTAL: enabled

推荐阅读