开发者社区 > 云效DevOps > 正文

云效里支持buildx吗? --platform 从哪里传进去?

问题1:云效里支持buildx吗? --platform 从哪里传进去? 问题2:a1893a8343a83bb557be1ef022d27298.png platform 是当做build-arg 参数传的

展开
收起
真的很搞笑 2023-06-06 19:05:57 189 0
5 条回答
写回答
取消 提交回答
  • 是的,云效支持 Docker buildx 工具,您可以在流水线中使用 docker buildx build 命令进行构建。--platform 参数可以通过流水线的环境变量或 Shell 脚本传递。 以下是使用云效的步骤:

    在流水线中添加命令行任务,并在脚本中执行 docker buildx build 命令,例如:

    docker buildx build --platform linux/amd64,linux/arm64 -t my-image .

    如需传递 --platform 参数,可以通过流水线的环境变量传递。例如,定义一个名为 BUILD_PLATFORM 的环境变量,并在构建命令中使用它,例如:

    docker buildx build --platform $BUILD_PLATFORM -t my-image .

    在流水线的环境变量设置页面中,可以设置 BUILD_PLATFORM 的值为所需构建平台,例如:

    linux/amd64,linux/arm64

    执行流水线,即可使用 docker buildx 工具进行构建。

    需要注意的是,Docker Buildx 工具需要在 Docker 版本 19.03 或更高版本中使用,并且需要在主机上启用 Buildx 插件才能使用。在云效中,可以通过在执行 Shell 脚本命令前添加 “docker login” 命令,并使用您注册的 Docker Hub 账户进行登录,以确保您可以使用 Buildx 进行镜像构建和发布。

    2023-06-07 15:15:48
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,云效已经支持了 Docker 的 Buildx 构建工具。在云效构建流程中使用 Buildx 进行多平台构建时,需要将 --platform 参数传递给 Buildx。

    下面是在云效中使用 Buildx 进行多平台构建的操作步骤:

    1. 确定需要构建的各个平台以及目标操作系统架构。例如同时构建 Linux 和 Windows 系统,以及多种 CPU 架构。

    2. 在云效构建流程中添加一个 Shell 脚本任务,并将脚本内容设置为如下命令:

      export DOCKER_CLI_EXPERIMENTAL=enabled
      docker buildx create --name mybuilder
      docker buildx use mybuilder
      docker buildx inspect --bootstrap
      docker buildx build --platform linux/amd64,linux/arm64,linux/ppc64le,windows/amd64 --tag myimage:latest .
      

      这里的参数中,--platform 指定了需要构建的各个平台,可根据实际情况进行修改。例如上面的命令中,以逗号分隔指定了需要构建的四个平台:Linux/amd64、Linux/arm64、Linux/ppc64le 和 Windows/amd64。

    3. 保存并启动构建流程,等待构建完成后即可得到多平台的 Docker 镜像。

    2023-06-07 12:10:11
    赞同 展开评论 打赏
  • 问题1:云效是支持 buildx 的,并且在构建 Docker 镜像时可以通过传递“--platform”参数来指定目标平台。您可以在云效流水线中的 Docker 任务的“构建参数”中添加参数“--platform”来实现,具体操作步骤如下:

    登录云效控制台,进入您的项目仪表盘页面。

    在左侧导航栏中选择“流水线”,进入流水线管理页面。

    创建一个新的流水线或者编辑现有流水线。在编辑流水线时,在 Docker 任务中新增一个“构建参数”。

    在“构建参数”中添加参数“--platform”,并指定要构建的目标平台。例如:

    --platform linux/amd64,linux/arm64/v8

    点击“保存”按钮保存任务设置,然后继续添加和配置其他任务,以完成整个流水线的构建过程。

    在流水线运行时,系统会自动按照您指定的平台参数构建镜像,并生成相应的构建结果。

    问题2:在 Dockerfile 中设置 build-arg 参数时,可以通过“--build-arg”参数来传递变量值。如果您要传递的是文件路径,则可以使用“-f”参数来指定文件。例如,以下命令可以将文件“a1893a8343a83bb557be1ef022d27298.png”的路径传递给 build-arg 参数“PLATFORM_IMG”:

    --build-arg PLATFORM_IMG=./a1893a8343a83bb557be1ef022d27298.png

    在 Dockerfile 中,您可以使用“ARG”指令来定义 build-arg 参数,然后通过“${参数名}”的方式来访问这些参数。例如:

    ARG PLATFORM_IMG ... COPY ${PLATFORM_IMG} /path/to/destination

    需要注意的是,在使用 build-arg 参数时,受限于 Docker 的安全机制,只有当前目录下的文件或者在 Docker build context 中包含的文件才能被添加到镜像中。因此,建议将需要使用的文件放在与 Dockerfile 相同的目录下,以避免出现文件丢失或权限问题。

    2023-06-07 10:42:21
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    云效是支持 buildx 的。您可以在云效的构建流程中使用 buildx 来构建多平台的 Docker 镜像。在使用 buildx 时,可以通过在 Dockerfile 中使用多平台支持的 Dockerfile 语法来指定多个平台的构建,并使用 --platform 参数来指定构建平台。

    在云效中使用 buildx 的步骤如下:

    在 Dockerfile 文件中使用多平台支持的 Dockerfile 语法来指定多个平台的构建。例如:

    FROM --platform=$BUILDPLATFORM golang:1.16.3-alpine AS build 在云效构建流程中,使用 buildx 来构建 Docker 镜像,并使用 --platform 参数来指定构建平台。例如:

    docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t myimage . 在这个示例中,我们使用 buildx 构建了一个名为 myimage 的 Docker 镜像,并指定了 linux/amd64、linux/arm64 和 linux/arm/v7 三个平台的构建。注意,--platform 参数需要在 buildx 命令中使用,并且需要指定所有需要构建的平台。

    关于传递 --platform 参数的问题,您可以在云效构建流程中使用环境变量来传递 --platform 参数。例如,在云效构建流程中添加一个环境变量 PLATFORM,并将其设置为需要构建的平台列表,然后在 buildx 命令中使用 ${PLATFORM} 来引用该环境变量。例如:

    docker buildx build --platform ${PLATFORM} -t myimage . 需要注意的是,PLATFORM 变量的值应该是一个逗号分隔的平台列表,例如 linux/amd64,linux/arm64,linux/arm/v7。

    2023-06-06 21:19:09
    赞同 展开评论 打赏
  • 回答1:云效构建使用的是buildkit 回答2:您使用自定义镜像:https://help.aliyun.com/document_detail/154943.html?spm=a2c4g.372543.0.i2 安装好buildx 然后使用私有构建集群:https://help.aliyun.com/document_detail/201868.html?spm=a2c4g.154943.0.0.720d2b6fAtjmzA,此回答整理自钉群“云效客户服务权益4群”

    2023-06-06 19:14:31
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效专有云服务手册下载(2019最新版) 立即下载