当前位置: 首页 > news >正文

Dockerfile 安装echarts插件给java提供服务

java调用echarts插件,生成图片保存到磁盘然后插入到pptx中报表。

Dockerfile文件内容: 

#基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
FROM docker.io/centos:centos7
#暴露端口
EXPOSE 9311
# 避免centos 日志输出 中文乱码
ENV LANG en_US.utf8
#容器中创建工作目录
WORKDIR  /usr/local/plugin
#容器中创建子目录
RUN mkdir -p ./data \
&&  mkdir -p ./Echart \
&& yum -y install fontconfig-devel \
&& yum groupinstall 'fonts' -y# 构建容器时 复制解压 echarts phantomjs jdk 到容器
ADD jdk-8u202-linux-x64.tar.gz  ./
ADD echarts-convert.tar.gz  ./
ADD phantomjs-2.1.1-linux-x86_64.tar.bz2  ./# 构建容器时 编译后的jar包copy到容器中创建到目录内
COPY realize-market-value.jar ./
COPY MVDR_YYYYMMDD_Template.docx  ./# 构建容器时 安装phantomjs 依赖系统libfontconfig.so文件
#RUN yum -y install fontconfig-devel
# 构建容器时 安装phantomjs 生成echart图片中文字体乱码解决
#RUN yum groupinstall 'fonts' -y
#配置环境变量
ENV JAVA_HOME=./jdk1.8.0_202
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH# 构建容器时 指定容器时区
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
# 启动容器时 要执行的命令
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=server","realize-market-value.jar"]
# 启动容器时 启动 tomcat
# CMD ["/usr/local/tomcat/apache-tomcat-8.5.27/bin/catalina.sh", "run"]
# 启动容器时 CMD的参数可以在镜像运行的时候被替换掉,并且成为ENTRYPOINT命令的参数
# CMD ["realize-market-value.jar"]

k8s文件:

apiVersion: v1
kind: Service
metadata:name: $IMG_NAMEnamespace: rz-dtlabels:app: $IMG_NAME
spec:type: ClusterIPports:- name: tcp-9311-9311port: 9311protocol: TCPtargetPort: 9311selector:app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:name: $IMG_NAME #名称namespace: rz-dtlabels:app: $IMG_NAME #标注
spec:replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量selector:matchLabels:app: $IMG_NAMEtemplate:metadata:labels:app: $IMG_NAMEspec:containers: #docker容器的配置- name: $IMG_NAMEenv:- name: aliyun_logs_catalinavalue: stdoutimage: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt-real/$IMG_NAME:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tagimagePullPolicy: Always #pull镜像时机,ports:- containerPort: 9311 #容器对外开放端口,需与springboot配置文件一致volumeMounts:- name: time-configmountPath: /etc/localtimereadOnly: true- name: volume-logsmountPath: /logssubPath: logsresources:limits:cpu: 5000mmemory: 1Girequests:cpu: 3000mmemory: 200Mi#从私有仓库拉取镜像凭证imagePullSecrets:- name: rz-dt-miyue-vpcvolumes:- name: time-confighostPath:path: /usr/share/zoneinfo/Asia/Shanghai- name: volume-logspersistentVolumeClaim:claimName: rz-dt-nas-volume-claim-real

 发布文件脚本:

echo "开始制作镜像..."
image_name=realize-market-value
image_tag=`date +%Y-%m-%d-%H-%M-%S` #_%H%M
echo "当前时间版本号:$image_tag"
docker build -t ${image_name}:${image_tag} .
echo "制作镜像成功!"echo "登录"
sudo docker login --username=aliyun0398513152 rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com --password=1234!@#$qwerQWERecho "镜像最新版本提交"
docker tag ${image_name}:${image_tag} rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt-real/${image_name}:${image_tag}
docker push rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt-real/${image_name}:${image_tag}echo "k8s一键部署"
export IMG_TAG=${image_tag}
export IMG_NAME=${image_name}
envsubst < ${image_name}'-real'.yaml | kubectl --kubeconfig ~/.kube-rz-real/config apply -f -


 

相关文章:

Dockerfile 安装echarts插件给java提供服务

java调用echarts插件&#xff0c;生成图片保存到磁盘然后插入到pptx中报表。 Dockerfile文件内容&#xff1a; #基础镜像&#xff0c;如果本地仓库没有&#xff0c;会从远程仓库拉取 openjdk:8 FROM docker.io/centos:centos7 #暴露端口 EXPOSE 9311 # 避免centos 日志输出 …...

Springboot小知识(1):启动类与配置

一、启动类&#xff08;引导类&#xff09; 在通常情况下&#xff0c;你创建的Spring应用项目都会为你自动生成一个启动类&#xff0c;它是这个应用的起点。 在Spring Boot中&#xff0c;引导类&#xff08;也称为启动类&#xff0c;通常是main方法所在的类&#xff09;是整个…...

[CISCN 2019华东南]Web11

[CISCN 2019华东南]Web11 给了两个链接但是都无法访问 这里我们直接抓包试一下 我们插入X-Forwarded-For:127.0.0.1 发现可以修改了右上角的IP地址&#xff0c;从而可以进行注入 {$smarty.version} 查看版本号 if标签执行PHP命令 {if phpinfo()}{/if} 查看协议 {if system(…...

Cypress内存溢出奔溃问题汇总

内存溢出报错信息 <--- Last few GCs ---> [196:0xe58001bc000] 683925 ms: Scavenge 1870.7 (1969.9) -> 1865.6 (1969.9) MB, 6.07 / 0.00 ms (average mu 0.359, current mu 0.444) task; [196:0xe58001bc000] 683999 ms: Scavenge 1872.4 (1969.9) -> 1867.1…...

树莓派4B--OpenCV安装踩坑

报错&#xff1a; Source directory: /tmp/pip-install-pv7l9r25/opencv-python_08fdf5a130a5429f89b0e0eaab39a329 Working directory: /tmp/pip-install-pv7l9r25/opencv-python_08fdf5a130a5429f89b0e0eaab39a329/_skbuild/linux-armv7l-3.7/cmake-build Please check the i…...

电子电气架构 --- 面向服务的汽车诊断架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

Pytest --capture 参数详解:如何控制测试执行过程中的输出行为

--capture 选项用于控制测试用例执行过程中标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;的捕获行为。 --capture 的选项值&#xff1a; fd&#xff08;默认&#xff09; 捕获文件描述符级别的输出&#xff08;stdout 和 stderr&#x…...

IS-IS的原理

IS-IS的基本概念&#xff1a; 概述&#xff1a; IS-IS&#xff0c;中间系统到中间系统&#xff0c;是ISO国际标准化组织为它的无连接网络协议设计的一种动态路由协议 IS-IS支持CLNP网络和IP网络&#xff0c;采用数据链路层封装&#xff0c;区别于ospf只支持IP网络&#xff0…...

C++(4个类型转换)

1. C语言中的类型转换 1. 隐式 类型转换&#xff1a; 具有相近的类型才能进行互相转换&#xff0c;如&#xff1a;int,char,double都表示数值。 2. 强制类型转换&#xff1a;能隐式类型转换就能强制类型转换&#xff0c;隐式类型之间的转换类型强相关&#xff0c;强制类型转换…...

Ubuntu20.04安装NVIDIA显卡驱动

Ubuntu20.04安装NVIDIA显卡驱动 参考资料&#xff1a;https://blog.csdn.net/weixin_39244242/article/details/136282614?fromshareblogdetail&sharetypeblogdetail&sharerId136282614&sharereferPC&sharesourceqq_37397652&sharefromfrom_link 成功配置…...

速盾:介绍一下高防cdn的缓存响应事什么功能?

高防CDN&#xff08;Content Delivery Network&#xff09;是一种基于分布式缓存技术的网络加速服务&#xff0c;能够提供强大的缓存响应功能。它的缓存响应功能主要包括缓存加速和智能缓存两个方面。 首先&#xff0c;高防CDN的缓存加速功能是指通过在全球范围内部署大量的缓…...

Nuclei-快速漏洞扫描器

Nuclei-快速漏洞扫描器 声明 学习内容来自 B 站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3f…...

linux网络抓包工具

linux网络抓包工具 一、tcpdump1.1 基本用法1.2 龙芯平台实例操作 二、wireshark2.1 主要功能2.2 龙芯平台实例操作 一、tcpdump tcpdump 指令可列出经过指定网络界面的数据包文件头&#xff0c;可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协…...

详解桥接模式

引言 在开发过程中&#xff0c;可能会遇到系统设计有多种维度变化的情况&#xff0c;比如我们想画一幅五彩斑斓的画&#xff0c;需要用到12个颜色&#xff0c;但是需要粗细不同的线条&#xff08;粗、中、细&#xff09;&#xff0c;如果用蜡笔&#xff0c;就需要粗中细三种蜡笔…...

探索AI新世界!热门工具与学习资源免费获取

​抖知书老师推荐&#xff1a; 人工智能技术的迅速发展让人们既充满期待又有些迷茫。有人担忧被AI技术取代&#xff0c;有人却积极拥抱这场科技浪潮。无论你处于哪种心态&#xff0c;人工智能已经深入到我们生活的方方面面。如果你希望轻松掌握最新的AI工具与动态&#xff0c;…...

vue3项目搭建-6-axios 基础配置

axios 基础配置 安装 axios npm install axios 创建 axios 实例&#xff0c;配置基地址&#xff0c;配置拦截器,目录&#xff1a;utils/http.js 基地址&#xff1a;在每次访问时&#xff0c;自动作为相对路径的根 // axios 基础封装 import axios from "axios";…...

Django 视图层

from django.shortcuts import render, HttpResponse, redirectfrom django.http import JsonResponse1. render: 渲染模板 def index(request):print(reverse(index))return render(request, "index.html")return render(request, index.html, context{name: lisi})…...

代理IP与百度在信息时代的交互

目录 一、代理IP的基本概念和工作原理 二、代理IP在百度搜索中的多重作用 解决网络延时问题&#xff0c;提高搜索速度 提高网络安全 隐藏用户的真实IP地址&#xff0c;保护个人隐私 突破访问限制&#xff0c;拓宽网络视野 三、代理IP在百度关键词排名优化中的应用 模拟…...

1、Three.js开端准备环境

准备工作 从 CDN 导入 1.安装 VSCode 2.安装 Node.js 3.查看Three.js最新版本 4.如何cdn引入&#xff1a; https://cdn.jsdelivr.net/npm/threev版本号/build/three.module.js 例如&#xff1a;https://cdn.jsdelivr.net/npm/threev0.170.0/build/three.module.js 我们需要…...

什么是Batch Normalization?

一、概念 Batch Normalization是在2015年提出的数据归一化方法&#xff0c;主要用在深度神经网络中激活层之前。它的主要作用是加快模型训练时的收敛速度&#xff0c;使模型训练过程更加稳定&#xff0c;避免梯度爆炸或消失&#xff0c;并起到一定的正则化作用&#xff0c;有时…...

HarmonyOS6 半年磨一剑 - RcTextarea 组件核心架构与类型系统设计

文章目录前言一、组件整体架构1.1 文件结构1.2 装饰器体系二、类型系统深度解析2.1 边框模式类型2.2 清空触发类型2.3 格式化与解析函数类型2.4 文本对齐与回车键类型三、核心参数体系3.1 必传参数3.2 尺寸相关参数3.3 功能开关参数四、内部状态与生命周期4.1 内部状态设计4.2 …...

从Excel到Python:数据分析师必学的对数坐标绘制技巧(含Seaborn美化)

从Excel到Python&#xff1a;数据分析师必学的对数坐标绘制技巧&#xff08;含Seaborn美化&#xff09; 当市场报告中的用户增长曲线从缓慢爬升突然变成陡峭上升&#xff0c;或是竞品分析中的订单量横跨三个数量级时&#xff0c;Excel的默认线性坐标往往会让图表失去可读性。对…...

OpenClaw调试技巧:QwQ-32B任务失败的根本原因分析

OpenClaw调试技巧&#xff1a;QwQ-32B任务失败的根本原因分析 1. 问题背景与诊断框架 上周我在尝试用OpenClaw对接本地部署的QwQ-32B模型时&#xff0c;遇到了一个典型问题&#xff1a;简单的文件整理任务总是执行到一半就中断&#xff0c;控制台只显示"模型响应超时&qu…...

基于粒子群优化算法的地表水源热泵机组优化调度 以水源热泵机组角度对地表水源热泵系统建模

基于粒子群优化算法的地表水源热泵机组优化调度 以水源热泵机组角度对地表水源热泵系统建模&#xff0c; 并采用粒子群优化算法优化算法求解热泵机组每小时最佳制冷量和制热量 最近帮朋友做了个小区地表水源热泵的调度优化项目&#xff0c;一开始以为就是调调空调温度&#xf…...

射频电路50Ω阻抗匹配原理与工程实践

射频电路中50Ω阻抗匹配的工程学解析1. 射频传输线阻抗标准的历史渊源1.1 同轴电缆的阻抗优化历程1929年贝尔实验室的系列实验揭示了同轴电缆的两个关键阻抗值&#xff1a;30欧姆可实现最大功率传输&#xff0c;77欧姆则对应最小传输损耗。这两个数值的算术平均值为53.5欧姆&am…...

NXP S32K3xx之HSE密钥管理与安全服务实战

1. HSE密钥管理基础&#xff1a;从零开始理解安全引擎 第一次接触NXP S32K3xx的HSE模块时&#xff0c;我被各种密钥术语搞得晕头转向。经过几个实际项目的打磨&#xff0c;现在我可以负责任地告诉你&#xff1a;理解HSE密钥管理就像学习一门新语言&#xff0c;掌握基础词汇后就…...

AI Agent 的动态知识更新:保持 LLM 知识的实时性

AI Agent 的动态知识更新:保持 LLM 知识的实时性 关键词:AI Agent、动态知识更新、大语言模型(LLM)、实时性、知识图谱 摘要:本文聚焦于 AI Agent 的动态知识更新,旨在探讨如何保持大语言模型(LLM)知识的实时性。首先介绍了相关背景,包括目的、预期读者等。接着阐述了…...

手搓STM32H743开源飞控系列教程---(五) 飞控IMU方向调整

1. 为什么需要调整飞控IMU方向 第一次玩飞控的朋友可能会遇到一个奇怪现象&#xff1a;明明把飞控板水平放在桌面上&#xff0c;地面站显示的姿态却歪了30度。这种情况十有八九是IMU安装方向与飞控默认设定不匹配导致的。我刚开始玩穿越机时就踩过这个坑&#xff0c;当时把飞控…...

会用AI的人,早已拉开职场差距!全岗位工作范式重构进行时

AI深度融入职场&#xff0c;正在改写工作的底层逻辑&#xff0c;会用AI的从业者&#xff0c;已在工作效率与职业发展上形成明显优势。从开发人员的研发流程&#xff0c;到方案人员的工作模式&#xff0c;再到各行各业的基础岗位&#xff0c;AI不再只是简单的效率工具&#xff0…...

别再死记公式了!用Python+Matplotlib亲手仿真LC并联谐振,直观理解选频原理

用PythonMatplotlib动态仿真LC并联谐振&#xff1a;从代码到物理直觉的沉浸式探索 当教科书上的LC并联谐振公式变成屏幕上跳动的曲线&#xff0c;当抽象的Q值概念转化为滑块调节时的实时波形变化&#xff0c;电子工程的学习便从枯燥的符号演算升维为一场充满探索乐趣的科学实验…...