docker通过dockerfile打java项目镜像

摘要:
/Bin/bashdir=$#获取当前路径im='xxl job exec'#打印的图像名称ck='100.98.100.234'#港口仓库地址标记=`date+%-m'`date+%-d`#图像dockerbuild的标记版本-t$ck/$im:$tag-f$dir/dockerfile$dir/dokerpush$ck/$sim:$tagdockerrmi$ck/+im:$tag3.执行shell脚本并运行容器chmod+xzxfb。shdockerrun-namexxl job-p9999-p16081-d[images id]#替换图像id的内容

环境:centos7

思路:java -jar 启动的项目打包成docker images进行运行

创建dockerfile——>创建shell脚本——>打包images

1、dockerfile内容如下

[root@k8s-master xxl-execl]# more dockerfile 
#网上拖取java8的镜像
FROM java:8
MAINTAINER zhangshan-makepakege
#添加本地的jar包到根目录
ADD *.jar web.jar
#暴露两个jar运行的端口
EXPOSE 9999/tcp
EXPOSE 16081/tcp
#执行cmd命令,下面两种方式都可以
#ENTRYPOINT ["java","-Duser.timezone=GMT+08","-jar","/web.jar"]
ENTRYPOINT ["sh","-c","java -Duser.timezone=GMT+08 -jar /web.jar"]

2、创建shell脚本

[root@k8s-master xxl-execl]# more zxfb.sh 
#!/bin/bash
dir=$(cd $(dirname $0);pwd)                                                #获取当前路径
im='xxl-job-exec'                                                          #打成的images名称
ck='100.98.100.234'                                                        #harbor仓库地址
tag=`date +%-m`.`date +%-d`                                                #images的tag版本  
docker build -t $ck/$im:$tag -f $dir/dockerfile $dir/  
docker push $ck/$im:$tag
docker rmi $ck/$im:$tag

3、执行shell脚本和运行容器

chmod u+x zxfb.sh
docker run --name xxl-job -p 9999:9999 -p 16081:16081 -d [images-id]      #替换images-id的内容

  

免责声明:文章转载自《docker通过dockerfile打java项目镜像》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇usbRedis单个分片高可用&哨兵集群下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker run hangs问题排查记录

1、故障描述   这两天遇到一个非常诡异的问题,现在将完整的故障描述如下: 1)最初是同事跟我反馈k8s集群中有个worker node状态变为NoReady,该node的kubelet的error日志中发现大量这种日志 E0603 01:50:51.455117 76268 remote_runtime.go:332] ExecSync 1f0e3a...

记一次docker安装logstash,并且读取数据库数据到es

docker安装logstash,在hub.docker官网是没有示例的。查了文章,大部分复制黏贴,语焉不详的。看着懵,虽然经过复制黏贴操作启起来了,但还是很多不理解。回想下不用docker安装的logstash,对比了下大致有点理解了。可自己配置run,还是启动没一会自动停止了。懊恼不已。 刚才仔细对比,小心求证发现了问题所在。貌似logstash启动要...

浅谈虚拟机、Docker和Hyper技术

操作系统 我们知道: 完整的操作系统=内核+apps 内核负责管理底层硬件资源,包括CPU、内存、磁盘等等,并向上为apps提供系统调用接口,上层apps应用必须通过系统调用方式使用硬件资源,通常并不能直接访问资源。apps就是用户直接接触的应用,比如命令行工具、图形界面工具等(linux的图形界面也是作为可选应用之一,而不像windows是集成到内核中...

kali linux 入门(1) 基于win10和docker的环境搭建

1. 前言 渗透测试并没有一个标准的定义。国外一些安全组织达成共识的通用说法是,渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法,这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。 渗透测试与其他评估方法不同。通常的评估方法是根据已知信息...

Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台

系列文章:https://www.cnblogs.com/alunchen/p/10121379.html 本篇文章操作系统信息       Linux:ubuntu 16.04.3 amd64 查看NetCore支持的Linux系统       NetCore不是支持Linux的所有系统,只支持部分,所以在Linux上安装NetCore之前要查看系...

Docker环境 ELK 快速部署

Docker环境 ELK快速部署 环境 Centos 7.4 , Docker version 17.12 Docker至少3GB内存; 内核配置 echo ' vm.max_map_count = 262144 net.core.somaxconn=65535 '>>/etc/sysctl.conf sysctl -p #创建elk #下...