分享好友 最新动态首页 最新动态分类 切换频道
Docker 构建 nginxWebUI 容器实战
2024-12-27 01:22

nginxWebUI 项目并非本人所写,其国内国内项目地址: Gitee nginxWebUI ,官网:nginxWebUI.cn。

由于源项目并未提供 ARM 平台的适配,但是该项目提供了 Dockerfile 文件,我们可以根据 Dockerfile 的说明和项目的源码,进行 ARM 平台下的重编译和 Docker 容器构建。

非 ARM 平台的,也可以按照本文进行本平台的实战测试。

对于源项目的源码来说,已经打包好了 x86_64 平台的 jar.tar.gz 包,该包内包含的 java 可执行程序是无法被用于 ARM 平台下运行。所以,虽然 arm64 系统的 Docker 可以下载源项目的镜像并保持容器的运行,但是实际上, 到镜像内部的 jre 和 jar 包都是不能顺利执行的。

我们需要重新将 AArch64 的 jre 重新打包并用于容器构建。

可以通过访问甲骨文(Oracle)的 jdk 下载官网,下载 AArch64 的 jdk 进行过滤打包: Oracle Java 8 。

实际上,Oracle 提供了 Java 8 和 Java 11 两个稳定版本的 AArch64 的 rpm 和 tar.gz (Compressed Archive)。但是为了使容器尽量的精简,这里使用 Java 8 来进行过滤打包。

  1. 对下载得到的 jdk-8u291-linux-aarch64.tar.gz 进行解压。

    
    
  2. 提取出要用的两部分,复制 文件夹到新建目录 下,并删除无用的、全是 文件 目录。

    
    
  3. 重新压缩打包为 。

    
    

    这时打包好的文件 40.13 MB ,解压后文件大小 106 MB 。注意这个数字,方便后面理解。

由于源项目是基于 SpringBoot 的,对于 ARM 环境下的 jar 要重新进行编译。这是使用 Docker 搭建 ARM 下 Maven 环境 来进行编译打包。

  • 请参考: Docker 搭建 ARM 下 Maven 环境 。

  • 初始镜像为 ubuntu:20.04

  • 维护者为 cym1102@qq.com

  • :环境变量,告知操作系统应该从哪儿获得用户输入。

    设为 可以直接运行命令,而无需向用户请求输入(所有操作都是非交互式的)。这在运行apt-get命令的时候格外有用,因为它会不停的提示用户进行到了哪步并且需要不断确认。非交互模式会选择默认的选项并以最快的速度完成构建。

    但是在源 Dockerfile 中,是使用 命令进行全局的设置,这会使该环境变量在整个容器运行过程中都会生效。本应确保只在 Dockerfile 中调用的 命令中设置该选项,以避免通过 和容器进行交互时出问题。

    
    
  • 通过 安装环境。注意,源 Dockerfile 中将 openjdk-11-jre 的下载安装注释掉了,这里将安装情况展示出来就能明白了:

    
    

    看到 964 MB 的时候,去和之前的解压后 106 MB 相比,就知道这是多么愚蠢的一件事了。

  • 命令将源作者打包好的 jre.tar.gz 压缩包,添加到 目录下解压,并对 添加 权限。

    命令将源作者的 nginxWebUI.sh 脚本,添加到 目录下,并对其添加 权限。

  • 将我们通过 Maven 容器编译好 jar 包复制到 。

  • 作为默认入口命令,以 的形式由 调用执行。

    让 将一个字串作为完整的命令来执行, 将参数传入脚本运行,利用 命令防止容器启动后退出(利用tail -f /dev/null命令防止container启动后退出)。

回顾下在本小节之前,本文中做了哪些工作:简化压缩了 的 jre 包;重编译了 AArch64 的 jar 包。

接下来需要就修改了的文件对 Dockerfile 进行修改。


  • 修改了 的内容,由于要生成的新的镜像由本人构建,所以维护者(maintainer)是更改为本人邮箱,时间是 ,作者保留为源项目作者 。
  • 中删除了已注释的安装 openjdk-11-jre 的命令。
  • 修改了导入 jre.tar.gz 的压缩包为 jre1.8.0_291.tar.gz ,并对对应的 可执行程序的路径进行修改。

若查看 nginxWebUI.sh 脚本的内容,会发现脚本中调用了导入的 可执行程序,所以也必须对脚本的内容进行修改。

  • 源脚本内容:

    
    
  • 修改 可执行程序对应路径即可:

    
    



Docker 启动:


docker-compose 启动:



由于目前市场上主流的大部分 ARM 平台处理器的性能并比不上 x86_64 的主流处理器性能,容器内 SpringBoot 项目的运行启动需要时间

最新文章
搜狗搜索优化策略,如何提升网站搜狗搜索引擎排名?
在这个信息爆炸的时代,每一个网站都渴望在搜索引擎中脱颖而出,吸引更多的目光和流量。而我,作为一名在SEO领域摸爬滚打多年的从业者,深知搜狗搜索引擎优化的重要性。搜狗搜索,凭借其强大的自然语言处理和机器学习能力,不断优化搜索算
跳转微信链接转化率高达80%的引流工具
据不完全数据统计,截止近些年,智能手机逐渐走入了千家万户,覆盖了全国超过90%以上的用户,成为绝大多数人士在工作上或者生活中不可或缺的一个部分。随着互联网社交技术的更新换代,微信的平台功能模块日趋健全,服务于更加广阔的商家和
桌面虚拟化 免费云桌面系统 云电脑租用 YL135 禹龙 办公云终端服务器
桌面虚拟化 免费云桌面系统 云电脑租用 云终端解决方案 虚拟化服务商一、云桌面介绍云桌面是完全符合云计算特征的一种云形态,也是云计算最主要的落地方式之一。桌面云的定义是:“可以通过瘦客户端或者其他任何与网络相连的设备(普通PC、
英文网站建设有什么需要注意
随着经济全球化影响范围的扩大和趋势的蔓延,国际间的交流合作加强,制作一个符合国际化标准的英文网站成为国际企业之间交流的主要平台。英文网站建设对企业之间的市场开拓具有重要的意义,那么英文网站建设有什么需要注意的呢?1.网站风格
谷歌关键词规划师使用详细教程
谷歌关键词规划师(Google Keyword Planner)是一个强大的工具,主要用于帮助用户研究和规划他们的广告活动中的关键词。以下是使用谷歌关键词规划师的基本步骤和方法:1. 访问关键词规划师登录谷歌 Ads 帐户:首先,您需要拥有谷歌 Ads 帐
超级菜菜鸟全程架站攻略(Mysql+Apche+PHP+Phpmyadmin+Zend,含本机安装)
——本文是我5月份刚学PW一个来月时写的攻略,因自己对语言一窍不通,只好自己琢磨+摸索,用了1个通宵研究出来的。今日有朋友问我架设方法,才想起俺写过这么个东西,一直没拿出来发表,今日赶紧补上:)不是超级菜鸟的可以不往下看了哈,
香港资料大全正版资料2024年免费,最佳精选解释落实_LE版6.822
  在这个信息爆炸的时代,数据和知识的获取看似随手可得,但实际上并非所有信息都是准确和权威的。“香港资料大全正版资料2024年免费,最佳精选解释落实_LE版6.822”应运而生,旨在为需要深入了解香港且追求高品质的读者提供一个官方、免
用AI绘画生成超逼真美女写真,零基础也能掌握!
DALL-E:这个工具是由OpenAI推出的强大AI图像生成器,可以将文字描述转化为生动的图片。用户只需通过自然语言描述自己想要的美女形象,DALL-E便能生动还原。优点是能生成非常富有创意和细节的图像,缺点则是对于中文的识别和生成效果相对较
跨境电商独立站没有流量?站外快速引流方法全介绍
现在是互联网时代,很多大佬开始做跨境电商的独立站,毕竟独立站赚钱也多一些,利润高一点。但是苦恼的就是跨境电商独立站建设容易,推广难,很久都没见到任何流量,没有流量意味着没有收入,有什么办法可以快速引流呢?其实跨境电商独立站
炼神丹!御神兽!废材大小姐竟是绝世帝女
简介:  【团宠+双强+驭兽+空间+帝女传承】夜染音,21世纪令人闻风丧胆的第一佣兵“夜神”!一朝穿越,成了边境小城被唾弃的废柴!未婚夫家上门退婚?家族把她当弃子?下一瞬,她被迎回帝都,成了国公府唯一的娇小姐!从此,展露逆天天赋
相关文章
推荐文章
发表评论
0评