linux 打版本包,如何构建指定特定版本软件包的Linux环境?

我正在创建一个dockerfile,它运行一个绑定到特定

Java版本的自定义应用程序.

我正在使用centos7基本图像,因为这就是我所指的文章所使用的,因为我必须使用某些东西,所以它就像任何东西一样好.老实说,我并不关心我正在使用的用户名.这个图像的重点是托管的软件,Linux发行版本身只是达到目的的手段 – 重要的是,JDK不会被其他应用程序或用户使用.

如上所述,我的应用程序与我正在使用的特定Java版本相关联 – 对Java版本的任何更新都需要在发布之前对该特定版本的软件进行完全回归测试.

我关注的文章开始时使用相关的dockerfile JDK安装部件,如下所示:

FROM centos:centos7

RUN yum makecache \

&& yum update -y \

&& yum install -y \

java-1.8.0-openjdk-devel \

&& yum clean all

这还不够具体,任何时候构建图像都会得到Java的随机版本,这不是我想要的,我需要特定版本的Java.

我将docker文件更改为如下所示:

FROM centos:centos7

RUN yum makecache \

&& yum update -y \

&& yum install -y \

java-1.8.0-openjdk-devel-1.8.0.65-3.b17.el7 \

&& yum clean all

码头图像正在建设中.那是在十二月.

本周,我需要对软件的不同部分进行一些小改动并重建新版本的图像,但现在图像构建失败了.

现在构建失败了,因为java包的特定版本不再可用(至少,我认为这是它告诉我的):

Error: Package: 1:java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64 (base)

Requires: java-1.8.0-openjdk-headless = 1:1.8.0.65-3.b17.el7

Available: 1:java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64 (base)

java-1.8.0-openjdk-headless = 1:1.8.0.65-3.b17.el7

Installing: 1:java-1.8.0-openjdk-headless-1.8.0.71-2.b15.el7_2.x86_64 (updates)

java-1.8.0-openjdk-headless = 1:1.8.0.71-2.b15.el7_2

如何重建我的dockerfile以便我总能使用特定版本的Java(在本例中,我希望java的版本为1.8.0更新65)?

一个消极的答案很好 – 如果各种Linux打包机制一般不希望人们使用这样的存储库,那就没关系 – 我总是可以将我自己的JDK版本打包为zip文件,只需将其打包到内部的某个地方.环境作为图像构建的一部分,但这是一堆麻烦,我宁愿不必这样做.

其他人怎么做?是否有不同的安装JDK的方法,以便我可以拥有最新版本的OS发行版,其中包含最新更新(由FROM子句和yum更新中的基本映像定义)但是安装了特定版本的JDK?

有没有更适合这种要求的Linux版本(我没有与CentOS结合,用户Linux发行版对我来说不是特别重要)?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值