在aarch64架构服务器编译docker-compose源码

docker 专栏收录该内容
5 篇文章 0 订阅

前言

由于项目所需,在官网和网络上也没有找到对应aarch64架构服务器的docker-compose程序,在此记录docker-compose编译过程,包括python3.7的环境搭建,本文已CentOS Linux release 7.6.1810 (AltArch)系统为例。
docker compose github 地址:https://github.com/docker/compose.git
python3.7.0 地址:https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

Python3.7.0环境搭建

首先需要网络环境来安装gcc编译环境,或者通过rpm包离线安装,本文只说明在线安装gcc命令。

  1. 通过一下方式命令安装编译Python3环境(推荐第二种方式);
    第一种方式只安装gcc编译相关的依赖:
    sudo yum -y install gcc gcc-c++ kernel-devel
    
    第二种方式通过使用yum-builddep为编译环境安装缺失的依赖
    sudo yum install yum-utils
    sudo yum-builddep python
    
  2. 获取Python3.7.0源码包;
    使用curl命令或者使用wget命令(-c -b 代表后端运行下载命令,可以不带-c -b参数)下载Python-3.7.0.tgz
    cd /home
    # curl
    curl -O https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    # wget
    wget -c -b https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    
    使用tar命令解压下载的Python-3.7.0.tgz文件
    tar -xf Python-3.7.0.tgz
    
  3. 开始编译并安装;
    源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install);
    configure部分参数说明(全部参数说明请在源码中使用./configure --help查看):
    –prefix 指定安装程序安装位置
    –enable-shared 启用动态库(注意: Python环境务必添加此参数否则不会生成libpython3.so libpython3.7m.so libpython3.7m.so.1.0等动态依赖库文件)
    cd Python-3.7.0
    ./configure --prefix=/usr/local/python3.7 --enable-shared --with-ssl
    make && make install
    
    在Python-3.7.0源码目录可以看到libpython3.so libpython3.7m.so libpython3.7m.so.1.0等动态依赖库文件,依赖库文件拷贝至/usr/lib64目录下;
    # 当前目录 /home/Python-3.7.0
    cp libpython3.7m.so libpython3.so libpython3.7m.so.1.0 /usr/lib64/
    
    将/usr/local/python3.7/bin目录添加PATH环境变量,
    # 写入export PATH=$PATH:/usr/local/python3.7/bin至/etc/profile文件
    echo 'export PATH=$PATH:/usr/local/python3.7/bin' >> /etc/profile
    # 变量变更生效
    source /etc/profile
    
  4. 查看python版本,到此Python3.7.0环境安装完成
    python3.7 --version
    

Docker compose源码编译

  1. 获取Compose源码
    cd /home
    # 直接下载zip
    curl -O https://github.com/docker/compose/archive/master.zip
    unzip -q master.zip 
    mv compose-master compose
    # 通过git获取
    git clone https://github.com/docker/compose.git
    
  2. 创建venv环境 python3以后版本支持venv
    cd compose
    # 最后一个venv为工程python环境的目录可自定义
    python3.7 -m venv venv
    
  3. 安装compose依赖(此步骤及以后步骤命令将在venv环境下执行)
    # 切换venv环境(退出输入deactivate命令即可),进入成功后命令行前缀为(venv) [root@vin compose]#
    source ./venv/bin/activate
    # 设置开发环境及安装依赖(请注意PyNaCl依赖需要相关的python动态库,上文已经说明过)
    python setup.py develop
    # 安装打包依赖(也可以直接执行pip install pyinstaller==3.6)
    pip install -r ./requirements-build.txt
    # 查看安装的依赖包
    pip list
    # 一下为博主安装完成后的依赖项
    Package            Version     Location           
    ------------------ ----------- -------------------
    altgraph           0.17        
    attrs              19.3.0      
    bcrypt             3.1.7       
    cached-property    1.5.1       
    certifi            2020.6.20   
    cffi               1.14.0      
    chardet            3.0.4       
    cryptography       2.9.2       
    distro             1.5.0       
    docker             4.2.2       
    docker-compose     1.27.0.dev0 /home/allen/compose
    dockerpty          0.4.1       
    docopt             0.6.2       
    idna               2.10        
    importlib-metadata 1.7.0       
    jsonschema         3.2.0       
    paramiko           2.7.1       
    pip                10.0.1      
    pycparser          2.20        
    PyInstaller        3.6         
    PyNaCl             1.4.0       
    pyrsistent         0.16.0      
    python-dotenv      0.14.0      
    PyYAML             5.3.1       
    requests           2.24.0      
    setuptools         39.0.1      
    six                1.15.0      
    texttable          1.6.2       
    urllib3            1.25.9      
    websocket-client   0.57.0      
    zipp               3.1.0 
    
  4. 开始编译docker-compose,当编译时出现找不到compose/GITSHA文件或目录时,请编译docker-compose.spec文件删除exe = EXE(中的
    		...
    			, 
    			(
    		        'compose/GITSHA',
    		        'compose/GITSHA',
    		        'DATA'
    		    )
    		...
    
    pyinstaller -F ./docker-compose.spec
    
    编译完成后 dist/docker-compose 就是所需的程序文件

Docker-compose(aarch64)程序连接分享

docker-compose(aarch64版程序)

后续

以上就是此次的记录,如果有问题请联系博主,欢迎收藏!

  • 0
    点赞
  • 1
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值