首页 > 其他分享 >docker构建arm编译环境

docker构建arm编译环境

时间:2024-03-06 17:23:51浏览次数:21  
标签:tmp libpcap tar -- gz 编译 && docker arm

利用docker快速搭建arm环境进行源码编译及代码测试

  • 准备

    • 安装好docker环境。
  • 启动multiarch/qemu-user-static跨平台模拟窗口

    sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    
  • 编写Dockerfile构建arm镜像

    # 第一阶段:准备编译环境和源码
    # 构建ptp4l,基于arm64v8/centos:7 
    FROM arm64v8/centos:7 as ptp-biluder
    
    # 安装编译 LinuxPTP 所需的依赖
    RUN yum update -y && yum install -y gcc make
    
    # 复制 LinuxPTP 源代码压缩包到镜像中
    COPY ./linuxptp-4.2.tgz /tmp/linuxptp.tgz
    
    # 创建目录结构并解压源码压缩包
    RUN mkdir -p /linuxptp/src \
        && tar -xzvf /tmp/linuxptp.tgz -C /linuxptp/src --strip-components=1
    
    # 设置工作目录为 LinuxPTP 源码目录
    WORKDIR /linuxptp/src
    
    # 编译 LinuxPTP
    RUN make && \
        make install
    
    #构建libpacp
    FROM arm64v8/centos:7 as libpcap-biluder
    
    # 安装编译 libpcap 所需的依赖
    RUN yum update -y && yum install -y gcc make flex bison byacc libpcap-devel
    # 将 libpcap 的源代码拷贝到镜像中(假设你已经将 libpcap 源码放在和 Dockerfile 同一目录下)
    COPY ./libpcap-1.10.4.tar.gz /tmp/libpcap.tar.gz
    
    # 解压源代码并编译安装
    RUN cd /tmp && \
        tar -xvf libpcap.tar.gz && \
        cd libpcap-1.10.4 && \
        ./configure && \
        make && \
        make install
    
    
    # 第二阶段:创建最终镜像
    FROM arm64v8/centos:7
    
    # 将 OpenJDK 安装包拷贝进容器
    COPY ./OpenJDK8U_aarch64_linux.tar.gz /tmp/openjdk.tar.gz
    
    # 解压安装 OpenJDK
    RUN mkdir -p /usr/lib/jvm && \
        tar -xzf /tmp/openjdk.tar.gz -C /usr/lib/jvm && \
        rm /tmp/openjdk.tar.gz
    
    # 设置 JAVA_HOME 环境变量
    ENV JAVA_HOME /usr/lib/jvm/jdk8u402-b06
    ENV PATH $PATH:$JAVA_HOME/bin
    
    # 从第一阶段复制编译好的 LinuxPTP 可执行文件到最终镜像中
    COPY --from=ptp-biluder /usr/local/sbin/ /usr/local/bin/
    COPY --from=libpcap-biluder /usr/local/lib/libpcap* /usr/lib64/
    

  • 生成镜像

    sudo docker build -t ptp4l .
    
  • 运行容器

    sudo docker run -it --name ptp4l ptp4l /bin/bash
    
  • 容器内运行命令

标签:tmp,libpcap,tar,--,gz,编译,&&,docker,arm
From: https://www.cnblogs.com/hua315/p/18052399

相关文章

  • ansible dockerfile
    包括了docker相关的模块功能dockerfileFROMpython:3.12.2-alpine3.19#ENVANSIBLE_VER=2.16.4RUNset-x\#Builddependencies&&apk--no-cacheadd--virtualbuild-dependencies\gcc\musl-dev\python3-dev\......
  • Pycharm的安装以及如何跳过试用设置永久使用?(Windows专业版2023-2024)
    目录一.Pycharm安装包下载二.Pycharm安装包安装三.设置永久使用一.Pycharm安装包下载官网下载(较慢),直接点击Download即可。也可以直接使用baidu网盘下载Pycharm官网地址Pycharm安装包网盘下载(内含安装视频及pojie包)二.Pycharm安装包安装直接双击第一步下载的安装......
  • Docker启动单机elasticsearch生产配置
    宿主机目录挂载在docker容器中运行elasticsearch时,需要进行配置、插件、日志和数据文件的挂载。创建挂载文件切换es用户sues01创建es本地目录cd/data&&mkdires_node1在es_node1下面创建配置、日志、数据目录cd/data/es_node1&&mkdirlogsdataconfigplugins基......
  • docker----镜像(二)
    镜像查看查看镜像[root@hmm-docker~]#dockerimagesREPOSITORY#镜像仓库TAG#标签IMAGEID#镜像idCREATED#创建时间SIZE#大小my-hellolatest6d0c09473a6620hoursago861kBubuntulatest3db8720ecbf53weeksago......
  • docker启动gitlab 备份与恢复
    一、数据备份进入容器备份dockerexec-itgitlab/bin/bashgitlab-rakegitlab:backup:create或者一条命令dockerexecgitlabgitlab-rakegitlab:backup:create默认将备份文件保存至/var/opt/gitlab/backups/这条命令是在Docker容器内部执行GitLab的备份操作。......
  • Mac电脑彻底删除 JetBrains 、Idea、pycharm 、webstrom、goland
    首先删除app删除缓存新版本cdUsers/xxx/Library/rm-rfLogs/JetBrains/IntelliJIdea202x.xrm-rfPreferences/com.jetbrains.intellij.plistrm-rfPreferences/com.jetbrains.jbr.java.plistrm-rfPreferences/jetbrains.jetprofile.asset.plistrm-rfApplicat......
  • .NETCore文件上传将文件保存到docker容器以外的文件夹
    最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取。开发环境:windows10+.NETCore7.0+Mysql  发布环境:Liunx+Docker实现功能:文件服务提供接口上传文件和下载文件,服务用于内网访问。实现中遇到的问题:由于文件保存是用的系统自带文件服务。而部署环境是Liunx+Doc......
  • Dockerfile 部署uwsgi+nginx+django
    背景最近在和组内小伙伴一起写接口测试平台后端,使用的是drf框架,目前已经完成部分工作。在和前端联调试另一个小伙伴使用uwsgi部署起来了,我感觉这样部署很low,因为之前有了解过docker所以想着这一次彻底把docker给学会吧,于是就有了这篇文章。首先先看一下我的目录结构i......
  • docker-部署mysql8,并映射数据目录和日志目录
    下载镜像dockerpullmysql:8.0.21在主机上准备目录mkdir-p/mysql8/data/mysql8/log  /mysql8/cnf编写配置文件[root@localhostcnf]#catmy.cnf[mysqld]datadir=/mysql/datalog-error=/mysql/log/mysql-log.logpid-file=/mysql/mysqld/mysqld.pids......
  • 离线部署docker-ce
    下载包删除或者备份原来的所有的yum源文件。然后添加阿里的yum源:wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo或者curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo更新:清除缓存......