在x86服务器上 搭建基于docker的arm64程序编译和运行环境

docker 镜像:

multiarch/qemu-user-static:register

arm64v8/ubuntu:18.04

 

必要的组件:

qemu https://github.com/multiarch/qemu-user-static  下载 qemu-aarch64-static

 

通常在x86环境上运行arm64的docker是会报错的:报错信息如下

standard_init_linux.go:175: exec user process caused “exec format error”

这就需要对运行环境做调整

 

1、注册qemu解释器

docker run --rm --privileged multiarch/qemu-user-static:register --reset

2、运行arm64v8/ubuntu:18.04时将本地qemu-aarch64-static映射到容器内

docker run --rm -t -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:18.04 uname -m
aarch64

3、如果需要以arm64v8/ubuntu:18.04为基础制作新的镜像,在Dockerfile中就需要将 qemu-aarch64-static添加到/usr/bin/下:

如下:

FROM arm64v8/ubuntu:18.04

ENV DEBIAN_FRONTEND=noninteractive
ADD qemu-aarch64-static /usr/bin

RUN sed -i s@/ports.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

RUN rm -rf /var/lib/apt/lists/* \
    && mkdir -p /var/lib/apt/lists/partial \
    && apt-get clean

RUN apt-get update --fix-missing 
RUN apt-get -y install build-essential cmake python python-pip python-setuptools \
            python3 python3-pip python3-setuptools 
RUN apt-get update --fix-missing && \
    apt-get -y install python3-opencv libhiredis-dev libjsoncpp-dev supervisor redis-tools

RUN pip3 install redis \
         -i  http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

需要设置环境变量 ENV DEBIAN_FRONTEND=noninteractive 否则在安装一些组件时会在阻塞在tzdata的安装上

另外阿里云已经有arm64的ubuntu源了 在http://mirrors.aliyun.com/ubuntu-ports/,国外的网络链接不畅的情况下可以把原来官方源替换一下

 

 

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值