写点什么

一种基于 alpine、支持 ARM 架构 64 位的镜像构建方法及其构建系统

  • 2024-10-14
    北京
  • 本文字数:941 字

    阅读完需:约 3 分钟

本文分享自天翼云开发者社区《一种基于alpine、支持ARM架构64位的镜像构建方法及其构建系统》,作者:郑****团


一种基于 alpine、支持 ARM 架构 64 位的镜像构建方法及其构建系统,包括以下步骤:


步骤 1:准备 arm64 位基础镜像包

在 docker 官网上下载对应 arm64 位 python-arm-3.7.8-alpine 基础镜像包。在预先配置好 python 包的基础上,alpine 相比于 centos 来说小的多,没有默认的预安装环境。需要自己安装 python 运行依赖的基础组件,包括 bash-doc、bash-completion、gcc、g++、make、libc-dev、libffi-dev mysql-dev、linux-headers、pcre-dev、pip。


查看适配的 ARM 架构服务器环境。服务器有公网访问权限,可以直接根据 requirements.txt 文件,使用 pip 安装云管应用服务所需的依赖包;服务器没有公网访问权限,则需要手动下载对应的依赖包,拷贝到基础镜像中,使这些依赖能够被云管应用所使用。通过复制代替了下载和安装依赖包,大大节省了下载和安装依赖包的过程的时间,节约时间成本。


我是通过下载离线依赖包这种方式,之后我将上述步骤整理编写成 DockerFile 文件,通过 docker 命令直接构建云管 Python 应用的基础镜像,将编译好的基础镜像上传到制品库。


步骤 2:根本编译好的基础镜像构建云管应用镜像,并运行容器


根据编译好的云管 Python 应用的基础镜像构建,通过得到的服务部署环境信息,生成对应的配置文件,复制配置文件,修改对应文件的执行权限。通过 docker built -t 构建对应的镜像。


基于该镜像通过 docker run 启动云管 Python 应该服务,查看日志,查看应用是否有问题。


将容器中的代码路径挂载出来,后续小版本升级直接替换要更新的代码,大版本升级直接根据基础镜像构建新的部署镜像,将原来的镜像备份和原来的容器停止,启动新的容器。


Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。


本发明通过适配 ARM 架构,提供了云管 arm64 版本的镜像,可以和 x86 一样,直接使用容器部署,大大提供了部署效率。


用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
一种基于alpine、支持ARM架构64位的镜像构建方法及其构建系统_云计算_天翼云开发者社区_InfoQ写作社区