基于ubuntu构建jdk镜像

这篇具有很好参考价值的文章主要介绍了基于ubuntu构建jdk镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

Docker Hub 上有很多官方的 JDK 镜像,但是它们都不是基于 ubuntu 的,而是基于更小的 Linux 发行版,在使用一些命令行工具的之后老师报找不到,而且自己对 ubuntu 也更加熟悉。

Dockerfile

# 以ubuntu为基础镜像
FROM ubuntu:18.04

# 指明该镜像的作者
MAINTAINER monkeybrain

# 更新apt源
RUN sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list \
    && sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list 

# 复制linux版本jdk压缩包到镜像内
COPY /jdk-8u381-linux-x64.tar.gz /usr/java/jdk-8u381-linux-x64.tar.gz
# 解压缩jdk到指定目录
RUN mkdir /usr/java/jdk
RUN tar -zxvf /usr/java/jdk-8u381-linux-x64.tar.gz -C /usr/java/jdk

# 设置JAVA_HOME、CLASSPATH、PATH环境变量
ENV JAVA_HOME=/usr/java/jdk/jdk1.8.0_381
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

RUN apt update
# 设置启动命令,打印jdk版本
CMD ["java", "-version"]

以此 Dockerfile 构建的镜像拥有国内的apt源,且安装了jdk8。
在构建此镜像的时候我遇到了一个问题,如果将 RUN apt update 的位置放在更新apt源的 RUN 之后,或报错,但是镜像构建成功,如下所示:

# 以ubuntu为基础镜像
FROM ubuntu:18.04

# 指明该镜像的作者
MAINTAINER monkeybrain

# 更新apt源
RUN sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list \
    && sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list 
RUN apt update

# 复制linux版本jdk压缩包到镜像内
COPY /jdk-8u381-linux-x64.tar.gz /usr/java/jdk-8u381-linux-x64.tar.gz
# 解压缩jdk到指定目录
RUN mkdir /usr/java/jdk
RUN tar -zxvf /usr/java/jdk-8u381-linux-x64.tar.gz -C /usr/java/jdk

# 设置JAVA_HOME、CLASSPATH、PATH环境变量
ENV JAVA_HOME=/usr/java/jdk/jdk1.8.0_381
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

# 设置启动命令,打印jdk版本
CMD ["java", "-version"]

这样构建出来的镜像要自己手动进入容器里面重新执行 apt update,如果不执行可能会在执行 apt install 报找不到软件。如果有知道原因的可以在评论区解释一下。

参考:
https://juejin.cn/post/7195443401142042683
https://blog.csdn.net/eif88/article/details/123852897文章来源地址https://www.toymoban.com/news/detail-706015.html

到了这里,关于基于ubuntu构建jdk镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker构建JDK 镜像

    在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间,Dockerfile如下 构建镜像 这个镜像我已 push 到个人的docker 官方仓库,可直接使用 docker pull kevin2099/openjdk:15.0.2-slim 下载 构

    2023年04月08日
    浏览(27)
  • docker使用alpine构建jdk21镜像

            项目使用的是springboot3.0,进行docker打包的时候需要jdk17以上,索性我就使用jdk21了,但是进行docker打包的时候,没有找到jdk21的镜像包,所以就想自己打包一个。         1.最初想要基于centOS去封装一个镜像,但是觉得这个包体会比较大,然后了解到了alpine这个基

    2024年01月16日
    浏览(27)
  • 使用dockerfile手动构建JDK11镜像运行容器并校验

    Docker官方维护镜像的公共仓库网站 Docker Hub 国内无法访问了,大部分镜像无法下载,准备逐步构建自己的镜像库。【转载aliyun官方-容器镜像服务 ACR】Docker常见问题 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托

    2024年02月03日
    浏览(33)
  • 使用Dockerfile构建自定义jdk镜像,在使用jdk镜像创建一个容器来外部访问(一步一步来哦~好简单的呢)

    文章主人公:帅哥BUG😎  文章路人: 路人 🤨  路人 😛 🤨:什么是dockerfile? 😎:Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,另外,使 用Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙 😛:知道了知道了,

    2024年02月09日
    浏览(43)
  • java jdk 国内下载镜像地址

    java jdk 国内下载镜像地址 (1)TUNA镜像  https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ (2)HUAWEI镜像  Index of java-local/jdk https://repo.huaweicloud.com/java/jdk/ (3)   http://www.sousou88.com/spec/java_openjdk.html http://www.sousou88.com/spec/java_openjdk.html  

    2024年02月04日
    浏览(35)
  • 基于Linux Alpine 制作 Java 8、11 Docker 镜像并支持中文

    Linux Alpine 1、关于linux alpine 楼主就不多介绍了,在容器化背景下, alpine 非常适合做容器基础镜像 。 2、有兴趣的同学可以转至官网查看 https://www.alpinelinux.org 制作Java镜像 1、楼主这里展示了基于 JDK1.8 和 JDK 11 的镜像制作方式 , 如下为 Dockerfile 文件 2、楼主这里增加了 glibc

    2024年02月09日
    浏览(37)
  • dockerfile基于apline将JDK20打包成镜像

    ​ 今天就来和大家聊聊如何把最新出版的JDK20打包成docker镜像,很多uu都会采用centos作为基础镜像,这么做会有一个问题,centos系统会含有很多库文件,这些库文件JDK程序并不是完全需要的,运行在服务器上会占用很多资源,这就没有必要。我们可以采用apline作为基础镜像打

    2024年02月10日
    浏览(26)
  • 群晖Nas构建Github镜像服务器(ubuntu系统可参考)

    由于众所周知的原因,github的访问不是很顺畅,如果需要拉一些内容下来,用nas做一个镜像server,不断定时去更新,需要的时候再从nas的git server去clone就会是一个比较经济的办法了。 安装GitServer 在群晖NAS的套件中心安装GitServer 创建Git用户(组),eg, git_local 开启SSH登录权限 控

    2024年02月16日
    浏览(34)
  • linux下jdk的安装和docker打包运行镜像

    https://www.oracle.com/java/technologies/downloads/#java8 从官网上下载linux版本的JDK JDK下载地址 通过ftp或者rz命令上传到linux 我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java tar命令解压JDK包,解压地址是 /usr/local/java 接下来配置环境变量 vim命令打开/etc/profile 添加下面内

    2023年04月08日
    浏览(29)
  • 基于nerdctl+buildkitd+containerd实现镜像构建

    容器技术除了的docker之外,还有coreOS的rkt、google的gvisor、以及docker开源的containerd、redhat的podman、阿⾥的pouch等,为了保证容器⽣态的标准性和健康可持续发展,包括Linux 基⾦会、Docker、微软、红帽、⾕歌和IBM等公司在2015年6⽉共同成⽴了⼀个叫open container(OCI)的组织,其⽬的

    2024年02月07日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包