实战交付一套dubbo微服务到k8s集群(4)之dubbo微服务底包镜像制作
1.下载jre镜像
在运维主机(mfyxw50.mfyxw.com)操作
[root@mfyxw50 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112

2.把jre上传至私有仓库
在运维主机(mfyxw50.mfyxw.com)上操作
[root@mfyxw50 ~]# docker images | grep jre
[root@mfyxw50 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 harbor.od.com/public/jre8:8u112
[root@mfyxw50 ~]# docker login harbor.od.com
[root@mfyxw50 ~]# docker push harbor.od.com/public/jre8:8u112

3.自定义Dockerfile文件
在运维主机(mfyxw50.mfyxw.com)上操作
[root@mfyxw50 ~]# mkdir -p /data/dockerfile/jre8
[root@mfyxw50 ~]# cat > /data/dockerfile/jre8/Dockerfile << EOF
FROM harbor.od.com/public/jre8:8u112
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
echo 'Asia/Shanghai' >/etc/timezone
ADD config.yml /opt/prom/config.yml
ADD jmx_javaagent-0.3.1.jar /opt/prom/
WORKDIR /opt/project_dir
ADD entrypoint.sh /entrypoint.sh
CMD ["/entrypoint.sh"]
EOF
[root@mfyxw50 ~]# chmod +x /data/dockerfile/jre8/entrypoint.sh

config.yml文件
[root@mfyxw50 ~]# cat > /data/dockerfile/jre8/config.yml << EOF
---
rules:
- pattern: '.*'
EOF

entrypointsh文件
[root@mfyxw50 ~]# cat > /data/dockerfile/jre8/entrypoint.sh << EOF
#!/bin/sh
M_OPTS="-Duser.timezone=Asia/Shanghai -javaagent:/opt/prom/jmx_javaagent-0.3.1.jar=\$(hostname -i):\${M_PORT:-"12346"}:/opt/prom/config.yml"
C_OPTS=\${C_OPTS}
JAR_BALL=\${JAR_BALL}
exec java -jar \${M_OPTS} \${C_OPTS} \${JAR_BALL}
EOF

下载jmx_javaagent-0.3.1.jar文件
[root@mfyxw50 ~]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar -O /data/dockerfile/jre8/jmx_javaagent-0.3.1.jar

4.在harbor里创建一个公有的base(所有底包)仓库

5.build底包并打标签
在运维主机(mfyxw50.mfyxw.com)上操作
[root@mfyxw50 ~]# cd /data/dockerfile/jre8/
[root@mfyxw50 jre8]# ls
config.yml Dockerfile entrypoint.sh jmx_javaagent-0.3.1.jar
[root@mfyxw50 jre8]# docker build . -t harbor.od.com/base/jre8:8u112

6.把build出来的jre8底包上传到私有仓库
在运维主机(mfyxw50.mfyxw.com)上操作
[root@mfyxw50 ~]# docker images | grep jre
harbor.od.com/base/jre8 8u112 d7286d4ba78d 8 minutes ago 363MB
harbor.od.com/public/jre8 8u112 fa3a085d6ef1 3 years ago 363MB
registry.cn-hangzhou.aliyuncs.com/yfhub/jre8 8u112 fa3a085d6ef1 3 years ago 363MB
[root@mfyxw50 ~]#
[root@mfyxw50 ~]# docker login harbor.od.com
Authenticating with existing credentials...
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@mfyxw50 ~]#
[root@mfyxw50 ~]# docker push harbor.od.com/base/jre8:8u112

实战交付一套dubbo微服务到k8s集群(4)之dubbo微服务底包镜像制作的更多相关文章
- 11.实战交付一套dubbo微服务到k8s集群(3)之dubbo微服务底包镜像制作
1.下载jre镜像并推送到harbor [root@hdss7- ~]# docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/jre8:8u112 ...
- kubernetes实战-交付dubbo服务到k8s集群(六)使用blue ocean流水线构建dubbo-consumer服务
我们这里的dubbo-consumer是dubbo-demo-service的消费者: 我们之前已经在jenkins配置好了流水线,只需要填写参数就行了. 由于dubbo-consumer用的gite ...
- kubernetes实战-交付dubbo服务到k8s集群(三)安装配置maven和java运行时环境的底包镜像
maven 官方地址: 官方地址 下载maven,shdd7-200 # cd /opt/src # wget https://archive.apache.org/dist/maven/maven- ...
- kubernetes实战-交付dubbo服务到k8s集群(一)准备工作
本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等. 首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载: 集群分布 ...
- 二进制部署1.23.4版本k8s集群-5-部署Master节点服务
1.安装Docker 在21.22.200三台机器上安装Docker.安装命令: 在21.22.200三台主机上部署Docker. ~]# curl -fsSL https://get.docker. ...
- 二进制部署1.23.4版本k8s集群-6-部署Node节点服务
本例中Master节点和Node节点部署在同一台主机上. 1 部署kubelet 1.1 集群规划 主机名 角色 IP CFZX55-21.host.com kubelet 10.211.55.21 ...
- 实战交付一套dubbo微服务到k8s集群(1)之Zookeeper部署
基础架构 主机名 角色 IP地址 mfyxw10.mfyxw.com K8S代理节点1,zk1 192.168.80.10 mfyxw20.mfyxw.com K8S代理节点2,zk2 192.168 ...
- 11.实战交付一套dubbo微服务到k8s集群(4)之使用Jenkins进行持续构建交付dubo服务的提供者
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4. 添加参数 # 参数 . name: git_repo type: string description: 项目在 ...
- 实战交付一套dubbo微服务到k8s集群(5)之使用Jenkins进行持续构建交付dubo服务的提供者
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4.添加第一个参数:设置项目的名称 5.添加第二个参数:docker镜像名称 6.添加第三个参数:项目所在的git中央 ...
随机推荐
- 【Linux】ssh远程连接到指定ip的指定用户上
通过ssh可以远程连接到其他的机器上,但是如果只想连接到指定的用户的话 需要这样做: -l 选项 (是L不是I,小写) ssh IP -l 用户名 这里的ip如果在hosts下就可以直接输入域名或者主 ...
- vue、element-ui 后台菜单切换重新请求数据
我们在做后台管理系统时,通常将数据请求挂载到created或mounted钩子中,但这样引发的问题是它只会被出发一次,如果不同菜单中数据关联性较大,切换过程中未及时更新数据,容易引发一些问题,这种情况 ...
- COLMAP简易教程(命令行模式)
完整的 multi view stereo pipeline 会有以下步骤 structure from motion(SfM)==> camera parameters, sparse poi ...
- 纯手工撸一个vue框架
前言 vue create 真的很方便,但是很多人欠缺的是手动撸一遍.有些人离开脚手架都不会开发了. Vue最简单的结构 步骤 搭建最基本的结构 打开空文件夹,通过 npm init 命令生成pack ...
- 数据水印 watermark
外发数据创建水印 产品通过对外发数据进行添加数据标记.自动生成水印.数据源追溯等功能,避免了内部人员外发数据泄露无法对事件追溯,提高了数据传递的安全性和可追溯能力. 数据水印系统_数据安全管理工具_[ ...
- WPF入门学习(转)
WPF基础知识 总结的学习WPF的几点基础知识: 1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础 ...
- 代理模式详解:静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好的理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标 ...
- LOJ10082
题目描述 原题来自:Centrual Europe 2005 我们有N个字符串,每个字符串都是由 a 至 z 的小写英文字母组成的.如果字符串A的结尾两个字符刚好与字符串B的开头两个字符匹配,那么我们 ...
- .NET使用MailKit进行邮件处理
0.介绍 MimeKit and MailKit are popular fully-featured email frameworks for .NET 框架支持版本如下 Supports .NET ...
- 用RabbitMQ了好几年之后,我总结出来5点RabbitMQ的使用心得
大概从 2013 年开始,我就开始了自己和 RabbitMQ 的接触,到现在已经有七年多了. 在这七年中,既有一些对 RabbitMQ 的深度体验,更有无数的血泪史. 而根据我这么多年的使用经验,我将 ...