有没有大佬在云效做过交叉编译的?arm64 amd64。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在云效中实现交叉编译(如 arm64
和 amd64
架构)是完全可行的,主要依赖于云效流水线的构建环境和自定义配置能力。以下是详细的解决方案和操作步骤:
云效支持接入私有构建集群,允许用户根据需求自定义构建环境。对于交叉编译场景,可以通过以下方式实现:
Linux/amd64
和 Linux/arm64
。sudo docker ps; echo $?
输出为 0
表示 Docker 运行正常。
buildx
)进行构建。buildx
工具可以在单一环境中生成多架构镜像。云效流水线支持 YAML Template 模式,可以通过模板语言动态渲染 YAML 文件,简化多架构编译的配置。
template
模式定义多架构编译任务。例如:
pipeline:
- name: 交叉编译任务
stages:
- jobs:
- displayName: 编译 amd64 和 arm64
task: execution-component@66
params:
buildEnvironment: container
specifyContainerImageId: build-steps-public-registry.cn-beijing.cr.aliyuncs.com/build-steps/alinux3:latest
moreBuildArgs: "-platform linux/amd64,linux/arm64"
specifyContainerImageId
:指定支持交叉编译的基础镜像。moreBuildArgs
:通过 -platform
参数指定目标架构。go template
语法动态生成 YAML 文件,满足不同架构的编译需求。例如:
{{ if eq .ARCH "amd64" }}
platform: linux/amd64
{{ else if eq .ARCH "arm64" }}
platform: linux/arm64
{{ end }}
完成交叉编译后,可以将生成的多架构镜像推送到自定义镜像仓库(如 Harbor)。
registry.cn-hangzhou.aliyuncs.com/ns/demo:${DATETIME}
如果需要更复杂的编译逻辑,可以使用 Flow-CLI 工具创建自定义步骤。
curl https://rdc-plugin-storage.oss-cn-beijing.aliyuncs.com/flow-cli/1.0/darwin_arm64_flow_cli -o /usr/local/bin/flow && chmod +x /usr/local/bin/flow
flow -v
flow step
命令定义自定义编译逻辑。例如:
flow step create --name cross-compile --image my-custom-image:latest --command "make build ARCH=arm64"
Linux/amd64
架构,若需支持其他架构,请使用「指定容器环境」。通过以上方法,您可以在云效中高效实现 arm64
和 amd64
的交叉编译任务。如果有进一步问题,欢迎随时咨询!
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。