制作jdk+maven docker镜像

kubesphere安装Maven+JDK17 流水线打包 kubesphere3.3安装Maven+JDK17 流水线打包 devops 阅读详情

1 制作镜像

新建一个jdk目录,拷贝jdk和maven二进制包到jdk目录:

# ls
apache-maven-3.8.3-bin.tar.gz jdk-8u181-linux-x64.tar.gz

在jdk新建一个Dockerfile文件

FROM centos:7.9.2009
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ADD apache-maven-3.8.3-bin.tar.gz /usr/local
ENV JAVA_HOME=/usr/local/jdk1.8.0_181
ENV MAVEN_HOME=/usr/local/apache-maven-3.8.3
ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
CMD java -version && mvn -v

执行:

# docker build -t jdk8.181-mvn3.8:v1.0 .     
Sending build context to Docker daemon  194.7MB
Step 1/7 : FROM centos:7.9.2009
 ---> eeb6ee3f44bd
Step 2/7 : ADD jdk-8u181-linux-x64.tar.gz /usr/local
 ---> 29ea802762a6
Step 3/7 : ADD apache-maven-3.8.3-bin.tar.gz /usr/local
 ---> a37de83a1ace
Step 4/7 : ENV JAVA_HOME=/usr/local/jdk1.8.0_181
 ---> Running in 25530da1cf3b
Removing intermediate container 25530da1cf3b
 ---> c24ccd66e3b9
Step 5/7 : ENV MAVEN_HOME=/usr/local/apache-maven-3.8.3
 ---> Running in 7054027a0146
Removing intermediate container 7054027a0146
 ---> b9240453891b
Step 6/7 : ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
 ---> Running in c13cdb3bc85e
Removing intermediate container c13cdb3bc85e
 ---> d4731f3957a3
Step 7/7 : CMD java -version && mvn -v
 ---> Running in 5a90a1351168
Removing intermediate container 5a90a1351168
 ---> bd168d7cb9be
Successfully built bd168d7cb9be
Successfully tagged jdk8.181-mvn3.8:v1.0

查看镜像:

# docker images
REPOSITORY                                        TAG        IMAGE ID       CREATED         SIZE
jdk8.181-mvn3.8                                   v1.0       bd168d7cb9be   5 seconds ago   596MB

启用此镜像建立容器:

# docker run -it -d --hostname jdk-test --name jdk-test jdk8.181-mvn3.8:v1.0 
fa61f86f4b3c281cfd0062eff6ac38c675d79c84f2da86d727a071ae013b4b54

查看容器日志,正常输出CMD命令:

# docker logs jdk-test
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /usr/local/apache-maven-3.8.3
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

但容器退出了:

[root@kxc-gitlab-r# docker ps -a
CONTAINER ID   IMAGE                  COMMAND                  CREATED              STATUS                          PORTS     NAMES
fa61f86f4b3c   jdk8.181-mvn3.8:v1.0   "/bin/sh -c 'java -v…"   About a minute ago   Exited (0) About a minute ago             jdk-test

修改Dockerfile:

FROM centos:7.9.2009
ADD jdk-8u181-linux-x64.tar.gz /usr/local
ADD apache-maven-3.8.3-bin.tar.gz /usr/local
ENV JAVA_HOME=/usr/local/jdk1.8.0_181
ENV MAVEN_HOME=/usr/local/apache-maven-3.8.3
ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
# Executing CMD terminates the container
#CMD java -version && mvn -v

重新执行:

docker build -t jdk8.181-mvn3.8:v2.0 .
Sending build context to Docker daemon  194.7MB
Step 1/6 : FROM centos:7.9.2009
 ---> eeb6ee3f44bd
Step 2/6 : ADD jdk-8u181-linux-x64.tar.gz /usr/local
 ---> Using cache
 ---> 29ea802762a6
Step 3/6 : ADD apache-maven-3.8.3-bin.tar.gz /usr/local
 ---> Using cache
 ---> a37de83a1ace
Step 4/6 : ENV JAVA_HOME=/usr/local/jdk1.8.0_181
 ---> Using cache
 ---> c24ccd66e3b9
Step 5/6 : ENV MAVEN_HOME=/usr/local/apache-maven-3.8.3
 ---> Using cache
 ---> b9240453891b
Step 6/6 : ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
 ---> Using cache
 ---> d4731f3957a3
Successfully built d4731f3957a3
Successfully tagged jdk8.181-mvn3.8:v2.0

查看镜像:

# docker images
REPOSITORY                                        TAG        IMAGE ID       CREATED          SIZE
jdk8.181-mvn3.8                                   v1.0       bd168d7cb9be   17 minutes ago   596MB
jdk8.181-mvn3.8                                   v2.0       d4731f3957a3   17 minutes ago   596MB

启用v2.0版本的容器创建镜像:

# docker run -it -d --hostname jdk-test2 --name jdk-test2 jdk8.181-mvn3.8:v2.0
f0fd9cbbf99e41d2e28a3129bd288a4eeba28a123b45bcf3b98458b34d7b0206

发觉容器不会退出了:

]# docker ps
CONTAINER ID   IMAGE                  COMMAND       CREATED          STATUS          PORTS     NAMES
f0fd9cbbf99e   jdk8.181-mvn3.8:v2.0   "/bin/bash"   2 seconds ago    Up 1 second               jdk-test2

进入容器,查看jdk和maven是否自动启动:

# docker exec -it jdk-test2 bash
[root@jdk-test2 /]# 
[root@jdk-test2 /]# 
[root@jdk-test2 /]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@jdk-test2 /]# mvn -v
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /usr/local/apache-maven-3.8.3
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

2 上传到docker hub

登录docker hub并创建Repostory:jdk8.181-mvn3.8
在这里插入图片描述

打上wangjinxiong标签:

# docker tag jdk8.181-mvn3.8:v1.0 wangjinxiong/jdk8.181-mvn3.8:v1.0
# docker tag jdk8.181-mvn3.8:v2.0 wangjinxiong/jdk8.181-mvn3.8:v2.0 

上传到docker hub上:

# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: wangjinxiong
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@kxc-gitlab-runner jdk]# docker push wangjinxiong/jdk8.181-mvn3.8:v1.0
The push refers to repository [docker.io/wangjinxiong/jdk8.181-mvn3.8]
f5b52bc1ae6c: Pushed 
77d62ac8898d: Pushed 
174f56854903: Mounted from library/centos 
v1.0: digest: sha256:b9abdbf7ad8d3dfb0a3f16cfea5e9af6f50c22db8795d9f0b824f20a4b0d04f8 size: 953
[root@kxc-gitlab-runner jdk]# docker push wangjinxiong/jdk8.181-mvn3.8:v2.0
The push refers to repository [docker.io/wangjinxiong/jdk8.181-mvn3.8]
f5b52bc1ae6c: Layer already exists 
77d62ac8898d: Layer already exists 
174f56854903: Layer already exists 
v2.0: digest: sha256:ae61f6f4d20263b979cc76c684c82784c1151eee1a76dd59a0668e9d6fe868c4 size: 953
使用 Docker 部署 Spring Boot 项目,带劲!! 本文栈长使用 IntelliJ IDEA、Maven 用 Docker 部署了一个 Spring Boot 项目,虽然只是一个简单的示例,但同时为了配合写文章,全程硬是肝了几个小时。本文只是一个简单的示例,所以过程并不复杂,想要构建更加复杂的应用,我们需要学习 Dockerfile 文件的编写,这个下期再分享吧,关注公众号Java技术栈第一时间推送,不要走开。如果只是运行一个 Spring Boot 应用确实没有必要用到 Docker,本文也是为了演示而上了 Docker。 阅读详情

相关推荐

利用Docker 快速搭建一个maven私有镜像库

首先我们先找台服务器,安装docker后,启动一个Docker registry镜像仓库 dockerrun-d -v /data/registry:/var/lib/registry -eREGISTRY_STORAGE_DELETE_ENABLED=true-p 5000:5000--restart=always --name maven-registry registry:2 过了一会后通过浏览器访问http://<服务器IP>:5050/v2/_catalog,会返回一...

洛阳泰山的博客 3651

在sun jdk 8镜像基础上构建maven 3的docker镜像

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34281537的博客 993

【云原生技术】如何将 JDK 和 Maven环境打包到 Docker 镜像中,并在 Kubernetes 环境下执行编译操作

准备文件: 确保将 JDK、Maven 的压缩文件、准备 kubectl 和 .kube 配置: 确保您有 kubectl 的二进制文件和 .kube/config 文件,这个配置文件应包含关于 Kubernetes 集群的连接信息(API 服务器地址、token、证书等)和.ssh文件准备好。编写 Dockerfile: 创建一个 Dockerfile,将上述文件复制到镜像中并配置环境。构建 Docker 镜像: 使用 Docker CLI 构建镜像。在 Kubernetes 中使用镜像进行操作。

weixin_46453070的博客 397

Maven的Docker镜像二次打包,再次推送至Harbor中

如服务器未登录过,需先使用以下命令登录后再推送 # $ docker login harbor.test.com $ docker push harbor.test.com/jx-common/maven:3.5-jdk-8。

1364

【DevOps】(2022.11更新)基于jenkins/jnlp-slave:4.13.3-1-jdk11镜像,加入kubectl、mvn命令

基于`jenkins/jnlp-slave:4.13.3-1-jdk11`镜像,加入kubectl、mvn命令

CN_Eden 1635

docker制作alpine-jdk-maven镜像

docker制作alpine-jdk-maven镜像

weixin_47475082的博客 726

Docker制作并使用Java镜像(jdk,maven,tomcat等等)

前文: 1. 如果不了解 Docker 是什么请参考Docker 介绍与安装使用 2. 如果不了解 如何使用 Docker请参考Docker镜像常用操作 后续持续更新...

xiao雷博客 1788

【Coze 扣子案例】第 23 期・商业篇:一键获取精准商机,自动化招标信息查询与分析

通过地区和项目类型等多维度组合查询全国招标信息网数据,实现招标公告的快速定位。自动解析招标公告内容,提取关键信息,并生成结构化摘要。帮助企业高效获取精准商机,提升市场竞争力,降低人工成本,解决 “信息过载” 与 “精准匹配难” 的双重问题。

weixin_72689845的博客 1928

checkout from version control 没有 github_ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?...

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos为什么需要ARM架构下的OpenJDK8的Docker镜像?对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑,例如华为泰山服务器),需要JDK8镜像作为基础镜...

weixin_34853336的博客 294

微电网系列: 位移因数DPF&&功率因数PF&&过激&&欠激

文中对比了位移因数(DPF,仅基波相位)与功率因数(PF,含谐波影响)的差异,指出PF=DPF×DF(畸变因数)。过激/欠激状态对应无功功率控制:过激(容性,电流超前,抬升电压)与欠激(感性,电流滞后,抑制电压)。PCS(如光伏逆变器)需逆向调节电网无功状态,过激时发出容性无功,欠激时吸收感性无功,以维持电压。

云纳星辰怀自在 1174

生物信息学名词解释 | K-mer (长度为k的短序列)

K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT

qq_50637636的博客 2万+

java项目打包成docker镜像步骤

java项目打包成docker镜像步骤

weixin_44425647的博客 917

别再凭感觉估算!用ADS的EBOND库精确仿真Bonding线寄生电感(附完整参数设置指南)

本文详细介绍了在ADS中使用EBOND库精确仿真Bonding线寄生电感的方法,帮助射频工程师在毫米波频段实现高精度建模。通过三维物理参数和电磁场求解算法,EBOND模型能将误差控制在5%以内,显著提升电路性能。文章还提供了完整的参数设置指南和实战操作步骤,适用于5G毫米波前端模块等高频应用场景。

weixin_28730131的博客 507

Dockerfile 构建 jdk8-maven3.6.2 的容器

下载之后将文件上传至/source-software 目录下,上传动作这里就描述了,自行处理;注:在制作时,需要指定目录,这里指定 source-software。通过命令验证了 java、maven 环境是正常的,那就是使用了。ADD :复制文件到镜像内,同时支持解压功能,与 COPY 不同。这里图片复用 jdk17-maven3.8.8 的文章的。MAINTAINER :描述镜像信息,主要是描述作者的。将制作好的基础镜像上传到 harbor 镜像仓库里。-t:表示构建镜像的名称及 tag。

TMesh的博客 974

matlab 图像合成_用MATLAB做图像合成加雾的处理

众所周知,现在有很多算法来对图像进行去雾处理。但反之,对图像增加雾的代码却少之又少,本代码就是基于Matlab实现了对图像的加雾处理。该方法可用做雾天图像的合成数据集。代码公开如下:clear;clc; % close all; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%i...

weixin_35719260的博客 2060

25届电信保研经验贴(空天院)

学校:中九专业:电子信息工程加权:92.89绩点:3.91/4.0rank:前五学期rank2/95,综合排名rank1(前六学期和综合排名出的晚,实际上只用到了前五学期)科研竞赛:市级大创、数模省一、数竞省二,其他校奖若干英语:六级462、四级548个人感觉:rank=科研>竞赛>英语总之rank和科研必须得有一项,要么就rank高,很多强com院校入营看rank。我rank比较有优势,因此报的多是强com院校。要么就科研经历丰富,多主动联系老师,特别是弱com院校。冬令营:空天院。

qq_68608661的博客 6353

微服务的Docker化部署

文章目录微服务的Docker自动化部署制作JDK1.8的Docker镜像Docker常用命令介绍制作image的一般流程将本地的image上传至私人仓库使用Maven插件实现自动化docker部署 微服务的Docker自动化部署 如何将一个微服务打包成一个可以独立运行的Docker镜像呢?需要完成两个任务: (1)JDK环境的Docker化 (2)微服务的Docker化 制作JDK1.8的Docker镜像 Docker常用命令介绍 (1)查看Docker本地仓库中已经下载好的镜像 docker images

小毅毅的博客 383

SAP HANA 的一个王炸技能,Smart Data Access

SAP HANA Cloud近期推出Knowledge Graph Engine(KGE),支持RDF三元组存储和SPARQL查询,与向量引擎等组件协同实现混合检索。同时文章介绍了HANA的Smart Data Access(SDA)功能,它通过虚拟表技术实现跨系统联邦查询,支持30+种数据源(不包括PostgreSQL),适用于混合云场景。SDA通过谓词下推优化性能,典型应用包括冷热数据分层和跨系统报表分析。对于PostgreSQL连接需求,建议使用HANA的Smart Data Integration方

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 498

Jenkins 的搭建(容器化)---拉取代码-打包-部署

1、制作 jenkins 镜像 内含(jdk maven git node docker 环境) 1、准备 jdk maven node 包 1、jdk1.8.0_192-amd64.tar.gz 2、apache-maven-3.6.3-bin.tar.gz 3、node-v10.15.3-linux-x64.tar.gz 2、准备jenkins 基础镜像 官方提供的 jenkins 镜像(内含jdk git 环境): jenkins/jenkins:latest 当安装node 和ma

weixin_42904386的博客 2122

王者荣耀AI绝悟如何选英雄?

王者荣耀AI绝悟如何选英雄? 【抢射手?抢中单位?「绝悟」在打王者荣耀时是如何选英雄的?】 腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。 近日,腾讯 AI Lab 和上海交通大学发布的一篇论文介绍了绝悟的英雄选择策略:Ju...

不断学习,不断进步,提高自己 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

docke运行jar的几种方式

一.Docker部署jar共有3种方式 1.本机或服务器制作一个docker镜像 1.1需要一个已经生成的jar包,目录如下 1.2制作一个名字叫Dockerfile的文件内容如下 #指定镜像基础,此处用的jdk8是docker比较常用的jak FROM openjdk:8-jdk-alpine #镜像维护者及联系方式 MAINTAINER *** “***” #添加jar包名,第一个jar包是...

weixin_43486804的博客 2095

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java开发环境Docker镜像

镜像说明 为了解决每次安装一个新的Linux环境都需要去重新安装一大堆Java开发相关的软件,制作了该款镜像。往后只需要在目标机器上安装Docker即可,下载该镜像即可完成Java环境的准备工作。 拉取镜像: docker pull secondriver/jde:v1.0.1 镜像包含软件 Ubuntu18 JDK8 Git Maven3 Vim 镜像主要作用 构建基于Maven管理Jav...

weixin_33826268的博客 870

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Jenkins+Gitee+Docker容器化部署

jenkins+docker+gitee实现容器自动化部署...

ulting优快云的博客 1438

一、Dokcer搭建Java基础环境并部署Spring Boot项目

Dokcer搭建Java基础环境并部署Spring Boot项目Docker搭建JDK8环境一、制作JDK8+CentOS 7镜像创建Dockerfile合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Docker搭建JDK8环境 一、制作

weixin_44472746的博客 258

docker部署

docker安装及使用以及镜像仓库搭建使用

ecbeach的专栏 643
上一篇: IDC_ISP网络之IDC机房内网络架构及配置
下一篇: docker命令
cloud_engineer
博客等级 码龄5年 9390粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值