在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/,国外的网络链接不畅的情况下可以把原来官方源替换一下

 

 

 

你可能感兴趣的:(人工智能,音视频开发,编程语言)