Giter VIP home page Giter VIP logo

jpom's Issues

启动脚本Server.sh在Mac机器上存在错误

包括Agent.sh也有类似问题

JPOM_SERVER_APPLICATION
automatic running:server-2.10.45.jar
Jpom server starting:46075
tail: illegal option -- -
usage: tail [-F | -f | -r] [-q] [-b # | -c # | -n #] [file ...]

ssh cannot connect with private key

The machine can directly ssh root@x -i id_rsa, but

image

log:

2022-11-28 16:12:52,642 WARN [http-nio-2122-exec-2] i.j.c.s.SshController [SshController.java:222]- x:() ssh连接失败
cn.hutool.extra.ssh.JschRuntimeException: JSchException: invalid privatekey: [B@6d8371d9
	at cn.hutool.extra.ssh.JschUtil.createSession(JschUtil.java:181)
	at io.jpom.service.node.ssh.SshService.getSessionByModel(SshService.java:149)
	at io.jpom.controller.ssh.SshController.save(SshController.java:219)
	at io.jpom.controller.ssh.SshController$$FastClassBySpringCGLIB$$b00725ae.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
	at io.jpom.system.WebAopLog.around(WebAopLog.java:74)
	at jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at io.jpom.controller.ssh.SshController$$EnhancerBySpringCGLIB$$52281b38.save(<generated>)
	at jdk.internal.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at cn.jiangzeyin.common.request.XssFilter.doFilterInternal(XssFilter.java:136)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.jcraft.jsch.JSchException: invalid privatekey: [B@6d8371d9
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:664)
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
	at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
	at com.jcraft.jsch.JSch.addIdentity(JSch.java:406)
	at cn.hutool.extra.ssh.JschUtil.createSession(JschUtil.java:179)
	... 64 common frames omitted

如何高效参与 Jpom 技术交流/沟通(免费社群 OR 付费社群)

前言

Jpom 从正式发布第一个版本至今已经经历过无数版本迭代,已经有无数前辈帮助 Jpom 发展和贡献同时他们也踩了 Jpom 的不少坑,我们应该先前辈致敬🫡。

所以您现在使用的 Jpom 版本中基本没有什么严重 BUG,请您在遇到问题时优先考虑是您环境、使用方式、理解偏差造成的错误或者非预期结果。

遇到问题还请有优先阅读文档:https://jpom.top

新手或者小白

如果您是小白刚入门或者还是萌新用户,我们衷心建议您阅读下列文章来辅助您高效解决问题

  1. 了解 Jpom
  2. Jpom 文档说明
  3. 安装 Jpom 必读前言
  4. 高效报告 BUG
  5. 提问的智慧

社群和 issues 如何选择

一般情况下社群是最快速的沟通方式,但是高效沟通又是一门学问。

目前 Jpom 日常靠社群来交流反馈大多数问题,如果遇到复杂较通用需要备忘录建议功能我们期望您使用 issues 来记录(issues 也是参与开源项目方式之一)。

issues 禁忌

我们非常不期望您在遇到一个小问题就提一个 issues,再提 issues 之前请您先自行尝试解决、查阅文档、搜索等方式仍无法解决后再提(谢谢您的理解和支持🙏)

我们期望 issues 均是一些有价值的问题讨论和建议

付费社群 VS 免费社群

Jpom 目前提供付费社群来高效的沟通您的问题,付费社群相对免费社群提供优先、更准确的解答

加入社群的详细说明:https://jpom.top/pages/praise/join/

why? 为啥您开源了问题反馈还要付费才能解答?

首先 Jpom 目前为止是一个完全开源的项目,当您遇到问题您完全可以自行根据源码排查(如果排查出 BUG 我们还恳请您反馈给官方)

其次 Jpom 是一个应用层面的软件系统,此类型的软件系统受环境、使用方式、用户理解等诸多主观性较强问题影响,您的问题不一定是真正的问题,但是可能需要一定经验性的知识来解决,所以这里我们为您提供付费社群来高效的解决此类型问题

再次开源本身就是一个较累的事情,我们期望有更多的方式来支持、促进开源的长期发展

温馨提醒

免费社群我们可能随时会取消

免费开源+付费技术支持才能更好的促进发展

建议

我们还请您本着友善的态度来参与 Jpom 的交流沟通,良好的沟通方式和友善的态度才能促进解决您的问题,反之可能没有办法解决您的问题,严重者我们将踢出社群(付费社群中概不退款)。

还有我们非常不期望使用指点的方式来建议 Jpom 该如何发展或者新增某某功能,如果您对 Jpom 的功能迭代、长期发展方向有任何建议我们都会虚心倾听,但是采纳与否我们还是会根据实际情况来评估,不会因为您的 完美建议 就直接改变,如果您真的有很好的 idea 请给出完整的可行性书面方案不太愿意接受口头上的方案

衷心的感谢您的支持和理解

钉钉扫码登录

钉钉扫码登录创建员工为中文名,无权限 ,无空间,编辑后提示登录名格式不正确(英文字母 、数字和下划线),并且长度必须3-50

多个环境的应用配置管理?

开发、测试、预发、生产等环境应用配置肯定是不一样的,即使同一环境的应用配置,也有配置版本的问题,这块管理不好,生产很容易出故障。这个才是devops的一个难点。

Jpom这块是怎么管理的呢?看了下文档,没有看到相关信息。如有哪位有看到,请给个提示。

谢谢!

终端命令黑名单可绕过

您好:
我发现目前的终端命令黑名单是可以通过tap或者光标移动来破坏最终命令绕过的,目前我发现仅仅针对backspace做了处理
image
所以我觉得如果没有其他的方式的话,仅仅从连接的io内容检测的话去实现的终端命令黑名单和终端日志记录这两个功能是不合理,要么就只能从linux虚拟机本身做处理了

通过私人令牌导入仓库时,数据库错误

通过私人令牌导入仓库失败,报错如下

数据库异常 Value too long for column "PASSWORD CHARACTER VARYING(50)": "'github_pat_11AL5JVBum_....... (93)"; SQL statement: INSERT INTO REPOSITORY (`name`, `gitUrl`, `repoType`, `protocol`, `userName`, `password`, `rsaPub`, `rsaPrv`, `workspaceId`, `modifyUser`, `createUser`, `createTimeMillis`, `id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [22001-214]

目测原因是因为 github personal access token 的长度超过了数据库定义

使用的 Fine-grained personal access tokens , 超过 50 了

自定义项目访问接口探活

期望不仅仅是固定的监控方式,可以做到自定义多个接口探活。并且可以配合Nginx自动摘流量,在发布的时候先在Nginx上修改指定发布机器的权重为0,在服务启动后并且探活基本自定义接口ok,将权重挂回🙏

在线构建报错“没有可用的docker server”

DSL 脚本:

# 基础镜像 目前仅支持 ubuntu-latest
runsOn: ubuntu-latest
# 使用哪个 docker 构建,填写 docker 标签 默认查询可用的第一个,如果 tag 查询出多个也选择第一个结果
#fromTag: master
# version 需要在对应镜像源中存在
# java 镜像源 https://mirrors.tuna.tsinghua.edu.cn/Adoptium/
# maven 镜像源 https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/
# node 镜像源 https://registry.npmmirror.com/-/binary/node/
steps:
  - uses: node
    version: 16.3.0
#  - uses: go
#    version: 1.17.6
#  - uses: python3
#    version: 3.6.6
# 将容器中的文件缓存到 docker 卷中
  - uses: cache
    path: ${JPOM_WORKING_DIR}/mortgage-calculator/node-modules
  - run: npm config set registry https://registry.npmmirror.com
# 内置变量 ${JPOM_WORKING_DIR} ${JPOM_BUILD_ID}
  - run: cd  ${JPOM_WORKING_DIR}/mortgage-calculator && npm i && npm run build
# 宿主机目录和容器目录挂载 /host:/container:ro
# binds:
#  - /Users/user/.m2/settings.xml:/root/.m2/
# 宿主机文件上传到容器 /host:/container:true
# dirChildrenOnly = true will create /var/data/titi and /var/data/tata dirChildrenOnly = false will create /var/data/root/titi and /var/data/root/tata
# copy:
#  - /Users/user/.m2/settings.xml:/root/.m2/:false
# 给容器添加环境变量
env:
  NODE_OPTIONS: --max-old-space-size=900

报错:
image

项目构建问题

有两个项目A和B,A依赖B,如果直接构建A项目就会出现找不到jar包的问题,那么请问如何去构建

Jpom 使用公司及组织登记

Jpom 感谢各位小伙伴的信任与支持,如果您在公司使用了 Jpom 去管理项目或者服务器等,希望您留下您的公司或组织信息:
格式如下:
公司名称:xxx
官网地址:http://xxx.com (内部系统可以不提供,或只留下前台官网链接)
展示Logo图片:(如果未提供Logo,我们将从官网截图展示)

您的公司信息将在项目官网进行展示:
https://jpom.top/

jpom-2.10.11 Service.sh 问题

binAbsName JAVA_HOME CLASSPATH 应该是否定判断
function install() {

if [ -f "$serviceFile" ]; then
    echo "service file already exists" 2>&2
    exit 2
fi
if [ ! -f "$binAbsName" ]; then
    echo "$binAbsName not found" 2>&2
    exit 2
fi
if [ ! -z "$JAVA_HOME" ]; then
    echo "JAVA_HOME variable not found" 2>&2
    exit 2
fi
if [ ! -z "$CLASSPATH" ]; then
    echo "CLASSPATH variable not found" 2>&2
    exit 2
fi

使用微软的DevOps作为代码仓库,新增仓库时提示账号密码错误

如题,使用微软的DevOps作为代码仓库,平常我是使用IDEA中的git直接拉取,输入账号密码后就可以拉取成功了;但在Jpom中,新增仓库时提示账号密码错误。
另外,因为我的仓库没有SSL证书,所以一般是要关闭git的SSL校验的,不知道和这个有没有关系。

我确定我的账号密码是没有错误的

修改docker demon配置后,docker构建没有使用新配置

Dockerfile里使用了COPY --chmod=xxx,修改了daemon.json添加

"features": {
  "buildkit": true
}

重新构建还是报errorDetail={message=the --chmod option requires BuildKit. Refer to https://docs.docker.com/go/buildkit/ to learn how to build images with BuildKit enabled},error=the --chmod option requires BuildKit. Refer to https://docs.docker.com/go/buildkit/ to learn how to build images with BuildKit enabled
尝试了重启server、agent等均不生效
但是使用命令行在jpom创建的source目录下可以生效

仓库地址 https 证书问题

在增加仓库的时候, 比如 gitlab 地址含有自签的证书, jpom 会出现以下错误:

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
        at sun.security.validator.Validator.validate(Validator.java:271)

能否增加选项关闭 ssl 验证, 类似 git 的配置:

git config --global http.sslVerify false

项目引用了com.h2database:h2等56个开源组件,存在1个漏洞,建议升级

大佬,看你这个项目调用了com.h2database:h2等56个开源组件,存在1个安全漏洞,建议你升级下。

漏洞标题:Markdown To Pdf 注入漏洞
漏洞编号:CVE-2021-23463
漏洞描述:
Markdown To Pdf是德国Simon Hanisch个人开发者的一个简单且可破解的 Cli 工具。用于将 Markdown 转换为 pdf。
Markdown To Pdf 中存在注入漏洞,该漏洞源于该服务使用org.h2.jdbc.JdbcResultSet.getSQLXML方法获得解析字符串时如果getSource方法的参数为DOMSource.class会引起恶意注入。以下产品及版本受到影响:H2database 2.0.202 之前版本。
影响范围:[1.4.198, 2.0.202)
最小修复版本:2.0.202
引入路径:
io.jpom.plugins:[email protected]>com.h2database:[email protected]

还有其它几个漏洞,信息有点多我就不贴了,你自己看下完整报告:https://www.mfsec.cn/jr?p=i77d1b
你对这个issues有任何疑问可以回复我,我能看见哈。

内网A节点构建后发布到B节点的项目报错

内网A节点构建后发布到B节点的项目报错
第一次报错是:”服务异常:设备上没有空间。“,但我肯定无论A节点还是B节点都是有空间的。
之后的报错都是:”啊哦,好像哪里出错了,请稍候再试试吧~“

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.