arm - 如何在 ARM 架构(QEMU)上加速 G++ 编译
问题描述
在我的一个基于 docker 的项目中,我使用QEMU为两个图像构建编译Mod 安全性。BASE_ARCH
这是docker_arm
工作
docker_arm:
stage: build
image: docker:19.03.1
services:
- docker:dind
before_script:
- echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin $CI_REGISTRY
- apk update
- apk add -q qemu
- echo 'Building $CI_PROJECT_NAME'
script:
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- docker build --build-arg BASE_ARCH=arm64v8 -t $CI_PROJECT_NAME:arm64v8-latest ./src
- docker tag $CI_PROJECT_NAME:arm64v8-latest $CI_REGISTRY/zar3bski/$CI_PROJECT_NAME:arm64v8-latest
- docker push $CI_REGISTRY/zar3bski/$CI_PROJECT_NAME:arm64v8-latest
我想知道我是否可以调整G++或qemu以加快速度,这样这项工作就可以通过了。我知道,因为 QEMU 模拟 ARM64/V8 架构,我永远无法获得原生性能。我所寻找的只是让工作成功(即使它需要 40 分钟)。在您看来,以下哪个选项更有可能提供稳定的管道:
- QEMU 优化
- G++ 优化
- 使用另一个 ARM 基础
docker:19.03.1
构建图像(是否只能在 Gitlab 中实现?)
编辑
似乎无法image: arm64v8/docker:19.03.1
在 Gitlab 共享运行器上运行
解决方案
推荐阅读
- python - Celery 任务未运行并卡在 PENDING 中
- javascript - 当我尝试做时,对象解构不起作用
- reactjs - 如何在 React Native 中处理令牌存储
- macos - env var 的 MacOS 导出在 shell 上被转义或误解
- python - 不使用字典动态创建变量
- javascript - 获取键值等于 true 的键名 - reactjs
- reactjs - 如何将完整的模块添加到 React Native 项目?
- xml - 使cardview中的两个项目出现在一行中
- r - 使用 Shiny 中的 id 提取元素的名称
- perl - 计算正值的 Perl 脚本不会报告所有正值