Oinone平台部署及依赖说明(v4.7)

概述

名词解释

  • 业务工程包:指平台提供的内置基础包和内置功能包。
  • 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。
  • 父POM:仅声明依赖包版本的pom文件
  • 启动工程POM:仅声明具体依赖包的pom文件,一般不用于指定版本。

业务工程部署

Oinone平台向合作伙伴提供前后端业务工程所需的全部依赖,依赖项的具体说明下面会分别介绍。

设计器部署

Oinone平台向合作伙伴提供了两种设计器部署方式:

  • Docker镜像:支持amd64arm64两种架构的操作系统。(推荐)
  • JAR包:与Docker镜像中的内容完全一致。

使用JAR包直接启动需要使用Oinone专属启动器Docker镜像已内置Oinone专属启动器。

PS:如遇到以上部署方式或提供的镜像无法满足部署需求时,请联系Oinone平台售后获取技术支持。

Docker镜像

体验镜像

  • 包括所有设计器。
  • 内置所有所需中间件,包括Mysql、Redis、Zookeeper、RocketMQ。

适用场景:用于快速体验Oinone平台全部功能

docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:TAG

前后端一体部署镜像

  • 包括所有设计器。
  • 无内置中间件。

适用场景:用于便捷部署Oinone平台的前后端服务

docker pull harbor.oinone.top/oinone/oinone-designer-mini-v4.8:TAG

前后端一体部署镜像 - 流程设计器

  • 仅包括流程设计器。
  • 无内置中间件。

适用场景:用于便捷部署仅需流程设计器的Oinone平台的前后端服务。

docker pull harbor.oinone.top/oinone/workflow-designer-v4.8:TAG

镜像拉取

以体验镜像为例,Oinone平台提供多种拉取镜像的方式。

# 获取混合架构镜像,支持amd64和arm64架构的操作系统
docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19

# 仅获取amd64架构镜像
docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19-amd64

# 仅获取arm64架构镜像
docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19-arm64

# 获取最新版镜像(每次拉取自动更新)
docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8

PS:如镜像拉取过慢,可在确定操作系统架构的情况下获取amd64arm64架构镜像。

JAR包获取

  • $VERSION:对应镜像版本号

包含所有设计器的后端JAR包下载路径示例

https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/oinone-designer/pamirs-designer-boot-v4.8-$VERSION.jar

仅包含流程设计器的后端JAR包下载路径示例

https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/workflow-designer/pamirs-workflow-designer-boot-v4.8-$VERSION.jar

后端依赖

Oinone平台后端使用Maven管理工具对所有依赖包进行版本管理。

版本说明

下面是在每个版本升级说明中提供的所有依赖版本,最新版本请查看对应的最新升级说明文档。

版本更新日志

<!-- 平台基础 -->
<pamirs.middleware.version>4.7.8.5</pamirs.middleware.version>
<pamirs.k2.version>4.7.8.7</pamirs.k2.version>
<pamirs.framework.version>4.7.8.19</pamirs.framework.version>
<pamirs.boot.version>4.7.8.12</pamirs.boot.version>
<pamirs.distribution.version>4.7.8.5</pamirs.distribution.version>
<!-- 平台功能 -->
<pamirs.metadata.manager>4.7.8</pamirs.metadata.manager>
<pamirs.core.version>4.7.8.19</pamirs.core.version>
<pamirs.workflow.version>4.7.8.16</pamirs.workflow.version>
<pamirs.workbench.version>4.7.8</pamirs.workbench.version>
<pamirs.data.visualization.version>4.7.8.1</pamirs.data.visualization.version>
<!-- 设计器 -->
<pamirs.designer.common.version>4.7.8</pamirs.designer.common.version>
<pamirs.flow.designer.base.version>4.7.8.1</pamirs.flow.designer.base.version>
<pamirs.workflow.designer.version>4.7.8</pamirs.workflow.designer.version>
<pamirs.model.designer.version>4.7.8</pamirs.model.designer.version>
<pamirs.ui.designer.version>4.7.8.9</pamirs.ui.designer.version>
<pamirs.data.designer.version>4.7.8</pamirs.data.designer.version>
<pamirs.dataflow.designer.version>4.7.8.1</pamirs.dataflow.designer.version>
<pamirs.eip.designer.version>4.7.8.1</pamirs.eip.designer.version>

完整依赖管理示例

以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在父POM中。

<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-k2</artifactId>
    <version>${pamirs.k2.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-framework</artifactId>
    <version>${pamirs.framework.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-boot-dependencies</artifactId>
    <version>${pamirs.boot.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-core-dependencies</artifactId>
    <version>${pamirs.core.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>pamirs-distribution</artifactId>
    <version>${pamirs.distribution.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.middleware</groupId>
    <artifactId>pamirs-middleware-dependencies</artifactId>
    <version>${pamirs.middleware.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--metadata manager-->
<dependency>
    <groupId>pro.shushi.pamirs.metadata.manager</groupId>
    <artifactId>pamirs-metadata-manager</artifactId>
    <version>${pamirs.metadata.manager}</version>
</dependency>

<!--workflow-->
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow</artifactId>
    <version>${pamirs.workflow.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--workbench-->
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench</artifactId>
    <version>${pamirs.workbench.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!--data-vi-->
<dependency>
    <groupId>pro.shushi.pamirs.data.visualization</groupId>
    <artifactId>pamirs-data-visualization</artifactId>
    <version>${pamirs.data.visualization.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

完整功能依赖示例

以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在启动工程POM中。

<dependency>
    <groupId>pro.shushi.pamirs</groupId>
    <artifactId>a</artifactId>
</dependency>

<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-boot-standard</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.metadata.manager</groupId>
    <artifactId>pamirs-metadata-manager</artifactId>
</dependency>

<dependency>
    <groupId>pro.shushi.pamirs.framework</groupId>
    <artifactId>pamirs-connectors-event</artifactId>
</dependency>

<dependency>
    <groupId>pro.shushi.pamirs.boot</groupId>
    <artifactId>pamirs-distribution-id</artifactId>
</dependency>
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-faas</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-gateway</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-session</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--    <groupId>pro.shushi.pamirs.distribution</groupId>-->
<!--    <artifactId>pamirs-distribution-session-cd</artifactId>-->
<!--</dependency>-->

<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sequence</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-expression-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-core-common</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-resource-core</artifactId>
</dependency>
<!-- user -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-user-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-user-view</artifactId>
</dependency>
<!-- auth -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-auth-core</artifactId>
</dependency>
<!-- business -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-business-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-business-view</artifactId>
</dependency>
<!-- message -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-message-core</artifactId>
</dependency>
<!-- translate -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-translate</artifactId>
</dependency>
<!-- file -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-file2-core</artifactId>
</dependency>
<!-- sql_record -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sql-record-core</artifactId>
</dependency>
<!-- data_audit -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-data-audit-core</artifactId>
</dependency>
<!-- sys_setting -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sys-setting-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-sys-setting-view</artifactId>
</dependency>
<!-- my_center -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-my-center-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-my-center-view</artifactId>
</dependency>
<!-- apps -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-apps-core</artifactId>
</dependency>
<!-- trigger -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-trigger-bridge-tbschedule</artifactId>
</dependency>
<!-- eip -->
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-view</artifactId>
</dependency>

<!-- workflow -->
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-core</artifactId>
</dependency>
<!-- workbench -->
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.work.bench</groupId>
    <artifactId>pamirs-work-bench-view</artifactId>
</dependency>
<!-- datavi -->
<dependency>
    <groupId>pro.shushi.pamirs.data.visualization</groupId>
    <artifactId>pamirs-data-visualization-core</artifactId>
</dependency>

对应的启动模块配置如下:

pamirs:
  boot:
    modules:
      - base # 基础模块(必须)
      - sequence # 序列(非应用)
      - expression # 表达式(非应用)
      - common # 公共资源
      - resource # 资源
      - user # 用户
      - auth # 权限
      - business # 合作伙伴中心
      - message # 消息
      - translate # 翻译
      - file # 文件
      - sql_record # SDC(非应用)
      - data_audit # 业务审计
      - sys_setting # 系统配置
      - my_center # 个人中心
      - apps # 应用中心
      - trigger # 触发器
      - eip # 集成接口
      - workflow # 工作流
      - workbench # 工作台
      - datavi # 数据可视化运行(非应用)

前端依赖

Oinone平台前端使用Npm管理工具对所有依赖包进行版本管理。

PS:前端更新最新版本仅需重新npm install即可获取最新版本。

完整依赖项示例

{
  "dependencies": {
    "@kunlun/dependencies": "~4.7.0",
    "@kunlun/vue-ui-antd": "~4.7.0",
    "@kunlun/vue-ui-el": "~4.7.0",
    "@kunlun/mobile-dependencies": "~4.7.0",
    "@kunlun/vue-ui-mobile-vant": "~4.7.0",
    "@kunlun/workflow": "~4.7.0",
    "@kunlun/designer-common": "~4.7.0",
    "@kunlun/ui-designer-dependencies": "~4.7.0",
    "@kunlun/data-designer": "~4.7.0",
    "@kunlun/data-designer-core": "~4.7.0",
    "@kunlun/data-designer-open-pc": "~4.7.0"
  }
}

前后端版本说明

Oinone平台前后端版本号管理基于以下原则:(以版本号z.y.x为例)

  • z:存在重大版本更新时;一般以年为单位进行升级。
  • y:功能迭代;
  • x:一般功能迭代;Bug修复;

PS:前后端版本总是以中版本进行完全兼容的,即4.7.x表示可以使用任意版本的前后端启动服务。

Oinone社区 作者:张博昊原创文章,如若转载,请注明出处:https://doc.oinone.top/yun-wei-shi-jian/16986.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
张博昊的头像张博昊数式管理员
上一篇 2024年9月2日 pm2:39
下一篇 2024年9月3日 pm12:49

相关推荐

  • 如何配置文件存储地址为相对路径

    介绍 大部分情况下,文件存储的配置都会配置uploadUrl和downloadUrl的值,这样图片和文件类型的业务字段会存储带域名的全路径文件地址,但是有些场景需要用户在专有内网的时候访问内网的文件存储地址,用户在公网的时候通过公网访问(一般情况下这个公网ip内部最后还是会转发到内网)文件存储地址,这个时候就要求存在数据库字段里的不能是全路径的地址,只能是想相对路径,这个时候可以通过前端访问的域名用nginx转发当前域名下的文件请求到所匹配环境的ip内的文件存储服务。 配置参考 cdn: oss: name: 本地文件NG系统 type: LOCAL bucket: pamirs # 此处可以不配置值,也可以配置相对路径前缀方便做转发 uploadUrl: downloadUrl: validTime: 3600000 timeout: 600000 active: true referer: localFolderUrl: /test/static 文件上传的路径同步配置nginx转发 location ~ /file/upload { // 此处配置为后端服务的ip+端口 proxy_pass http://127.0.0.1:8190; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } excel导入场景相对路径在后端代码内无法保存导入的文件 在导入任务的前置hook处理相对文件路径的前缀 package pro.shushi.pamirs.demo.core.hook; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import pro.shushi.pamirs.file.api.FileModule; import pro.shushi.pamirs.file.api.model.ExcelImportTask; import pro.shushi.pamirs.meta.annotation.Hook; import pro.shushi.pamirs.meta.api.core.faas.HookBefore; import pro.shushi.pamirs.meta.api.dto.fun.Function; @Component public class DemoExcelImportTaskActionHookBefore implements HookBefore { // 内网访问文件的地址 public static final String INNER_HOST = "http://127.0.0.1:6800"; @Override @Hook(module = {FileModule.MODULE_MODULE}, model = {ExcelImportTask.MODEL_MODEL}, fun = {"createImportTask"}) public Object run(Function function, Object… args) { if (args.length > 0) { ExcelImportTask excelImportTask = (ExcelImportTask) args[0]; if (excelImportTask != null && excelImportTask.getFile() != null && StringUtils.isNotBlank(excelImportTask.getFile().getUrl())) { excelImportTask.getFile().setUrl(INNER_HOST + excelImportTask.getFile().getUrl()); } } return null; } } 注意事项 上面的例子为本地文件NG系统的,如果是阿里云oss、7牛云等第三方文件存储服务,downloadUrl可以按上面方案直接配置,uploadUrl还是要按正常配置

    2024年6月21日
    1.1K00
  • Maven包拉取:拉取Oinone包的配置

    1、方式一,配置数式仓库代理 创建一个proxy类型的仓库 点击"Repository"–>“Repositories”–>“Create repository”,选择maven2(proxy)。 Name:要代理的数式的maven,自定义maven-proxy-shushi-release Online:勾选,设置成在线 ProxyRemote storage:设置远程数式仓库的地址。这里设置成数式的maven仓库地址:http://nexus.shushi.pro/repository/pamirs-releases/ 认证方式:Authentication,填写数式提供的用户名和密码; 其他的保持默认即可 用同样的方式,把数式snapshots(http://nexus.shushi.pro/repository/pamirs-snapshots/) 2、方式二,Settings融合 在Maven的配置文件中(settings.xml),增加数式的仓库配置: <!– oinone –> <server> <id>oinone-develop-release</id> <username>数式提供的账号</username> <password>数式提供的密码</password> </server> <server> <id>oinone-develop-snapshot</id> <username>数式提供的账号</username> <password>数式提供的密码</password> </server> <!– oinone –> <repository> <id>oinone-develop-release</id> <name>Repository for pamirs releases</name> <url>http://nexus.shushi.pro/repository/pamirs-releases/</url> <releases> <enabled>true</enabled> <!– <updatePolicy>always</updatePolicy> –> </releases> <snapshots> <enabled>false</enabled> </snapshots> <layout>default</layout> </repository> <repository> <id>oinone-develop-snapshot</id> <name>Repository for pamirs snapshots</name> <url>http://nexus.shushi.pro/repository/pamirs-snapshots/</url> <snapshots> <enabled>true</enabled> </snapshots> <layout>default</layout> </repository>

    2024年2月20日
    72700
  • 开源日志平台:Graylog部署及接入

    一、部署Graylog Graylog总共需要3个服务:graylog服务端、mongodb(存储graylog的配置)、elasticSeach(存储日志)本文档部署方案介绍: graylog服务端、mongodb(存储graylog的配置)使用docker-compose部署 elasticSeach 引用外部地址 1. 安装docker、安装docker-compose 这部分直接参考互联网上的教程:链接 2. 通过docker-compose部署graylog 服务器上新建一个 graylog的目录,并在该目录下新建 docker-compose.yml version: '3' services: mongo: image: mongo:5.0 container_name: mongo volumes: – /data/docker/graylog/mongo_data:/data/db networks: – graylog ports: – 27017:27017 environment: – TZ=Asia/Shanghai healthcheck: test: ["CMD", "mongo", "–eval", "db.adminCommand('ping')"] interval: 30s timeout: 10s retries: 5 graylog: image: graylog/graylog:5.2 container_name: graylog depends_on: mongo: condition: service_healthy environment: – GRAYLOG_ROOT_PASSWORD_SHA2=xxxxx #sha2生成的密码,可以服务器通过命令获取:echo -n yournewpassword | sha256sum – GRAYLOG_PASSWORD_SECRET=xxxxx #随机生成的secret,长度超过32位,可以自己生成 – GRAYLOG_HTTP_ENABLE_TLS=false – GRAYLOG_TIMEZONE=Asia/Shanghai – GRAYLOG_MONGO_URI=mongodb://mongo:27017/graylog – GRAYLOG_ELASTICSEARCH_VERSION=7 – GRAYLOG_ELASTICSEARCH_HOSTS=http://es账户:es密码@es地址:9200 – GRAYLOG_ELASTICSEARCH_USER=es账户 – GRAYLOG_ELASTICSEARCH_PASSWORD=es密码 – GRAYLOG_HTTP_EXTERNAL_URI=http://访问地址/ – GRAYLOG_HTTP_PUBLISH_URI=http://访问地址/ – GRAYLOG_PLUGIN_SYSTEM_LANGUAGESELECTOR_DEFAULT_LOCALE=zh_CN – TZ=Asia/Shanghai networks: – graylog ports: – "9000:9000" – "514:514" – "514:514/udp" – "12201:12201" – "12201:12201/udp" volumes: mongo_data: driver: local graylog_data: driver: local networks: graylog: driver: bridge 上面的配置根据自己的环境,重新配置。注意点:elasticSearch如果存在账密的化,参考下GRAYLOG_ELASTICSEARCH_XXX这几个配置,进行调整。 3. 启动graylog # 1. 启动执行 docker-compose up -d # 2. 如果希望调整docker-compose.yml的配置,需要先关闭,再重启 ## 2.1 先关闭graylog的应用 docker-compose down ## 2.2 修改完文件后,再执行启动命令 docker-compose up -d # 3.查看启动日志,确认是否完成启动 docker logs mongo; docker logs graylog; 4. 配置graylog 日志传输,建议采用UDP协议,其次包括graylog的踩坑记录,参考如下文档:参考1参考2 二、java应用接入Graylog 1. pom新增依赖 <!–logback gelf日志收集–> <dependency> <groupId>biz.paluch.logging</groupId> <artifactId>logstash-gelf</artifactId> <version>1.15.0</version> </dependency> 2. 配置logback.xml文件,同时增加traceId、spanId方便链路日志的追踪 a. 配置 Logback 以支持 MDC,在 logback.xml 中配置 GelfLogbackAppender,并确保包括 traceId 和 spanId 字段: <configuration> <appender name="GELF" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender"> <host>udp:graylog的地址</host> <!– graylog 服务器ip –> <port>graylog开放的端口</port>…

    2024年5月30日
    1.8K00
  • MINIO无公网访问地址下OSS的配置

    在实际项目中,会存在MINIO外网不能访问,只能通过应用的域名(IP)进行转发才能访问的情况。该篇文章主要是为解决这种场景。 PS:如果MINIO外网可以直接访问,正常配置MINIO的OSS配置即可。 阅读之前 了解MINIO对endpoint的限制, As per S3 specification, path in the endpoint is not supported. 即MINIO的请求地址不能带path. 详细参考:https://github.com/minio/minio-java/issues/1476 解决办法 项目中的MINIO地址配置一个可以访问的外网地址; 在网络层(NGINX)中配置该外网地址到MINIO的内网地址; 因MINIO对endpoint的限制只能是 ip+port,即不能包含path, 也即不能通过配置path的方式进行转发;需要给一个IP(域名)+ 端口的 外部地址。 详细配置步骤 项目中OSS的配置 uploadUrl 和 downloadUrl配置为外网可访问的地址,非实际的MINIO地址。即访问MINIO通过一个可外部访问的地址进行转换 cdn: oss: name: MINIO type: MINIO bucket: pamirs # uploadUrl 和 downloadUrl配置为外网可访问的地址,非实际的MINIO地址 uploadUrl: http://127.0.0.1:8083 downloadUrl: http://127.0.0.1:8083 accessKeyId: svs7nKWRSrfFPH1X5FOy accessKeySecret: yoIq1T1w4ythggvL51rNyyiKST0KLPagUwB3C23A mainDir: assert/demo validTime: 3600000A timeout: 600000 active: true referer: localFolderUrl: NGINX配置(MINIO配置) upstream minio { #真实的MINIO的地址 server 39.103.145.77:9000 weight=100 max_fails=2 fail_timeout=30s; } server { listen 8083; server_name 127.0.0.1; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $remote_addr; client_body_buffer_size 10M; client_max_body_size 50M; proxy_buffers 1024 4k; proxy_read_timeout 3000; proxy_next_upstream error timeout http_404; proxy_pass http://minio; } } 解决办法2 自定义实现MinioOssClient,跳过minio官方限制 package pro.shushi.pamirs.hr.core.file; import io.minio.DateFormat; import io.minio.MinioClient; import io.minio.PostPolicy; import io.minio.Result; import io.minio.http.Method; import io.minio.messages.Item; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.http.MediaTypeFactory; import org.springframework.stereotype.Component; import pro.shushi.pamirs.framework.connectors.cdn.client.AbstractFileClient; import pro.shushi.pamirs.framework.connectors.cdn.configure.CdnConfig; import pro.shushi.pamirs.framework.connectors.cdn.enmu.CDNExpEnum; import pro.shushi.pamirs.framework.connectors.cdn.factory.CdnConfigRouter; import pro.shushi.pamirs.framework.connectors.cdn.pojo.*; import pro.shushi.pamirs.framework.connectors.cdn.utils.MinioMultipart; import pro.shushi.pamirs.framework.connectors.cdn.utils.URLHelper; import pro.shushi.pamirs.meta.annotation.fun.extern.Slf4j; import pro.shushi.pamirs.meta.api.prefix.KeyPrefixManager; import pro.shushi.pamirs.meta.common.exception.PamirsException; import pro.shushi.pamirs.meta.common.spi.SPI; import javax.annotation.PostConstruct; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import…

    2024年5月9日
    1.7K00
  • Docker部署常见问题

    问题1:容器启动出现library initialization failed – unable to allocate file descriptor table – out of memory异常如何处理? 原因 不同操作系统安装Docker后,容器运行环境并不一致,需要对Docker运行参数进行调整。 解决方案 编辑/etc/systemd/system/docker.service文件, 有些系统该文件位置:/lib/systemd/system/docker.service 查看docker的systemd(docker.service)配置位置 systemctl status docker 查看docker的systemd配置位置 将下列参数进行修改 LimitNOFILE=65535 LimitNPROC=65535 LimitCORE=65535 执行以下脚本 systemctl daemon-reload systemctl restart docker 问题2:容器启动出现library initialization failed – unable to allocate file descriptor table – out of memorypanic: signal: aborted (core dumped)异常如何处理? 问题现象 1、 按照【问题1】的设置进行配置后,仍然不生效; 2、 尝试修改宿主机系统内核的ulimits,重启docker仍报错。修改docker.service(文件位置:/etc/systemd/system/docker.service文件, 有些系统该文件位置:/lib/systemd/system/docker.service) 解决方案 查看docker的systemd(docker.service)配置位置【问题1】中的办法 在ExecStart命令后加上创建容器的默认ulimit配置,如下,设置容器启动时的ulimit为65535:65535 –default-ulimit nofile=65535:65535 配置好后: ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock –default-ulimit nofile=65535:65535 执行以下脚本 systemctl daemon-reload systemctl restart docker 资料参考:https://blog.csdn.net/weixin_42241322/article/details/137122868 问题3:拉取设计器镜像报错 报错信息,拉取镜像harbor.oinone.top连不上。 docker login –username=schhsw_oinone harbor.oinone.top i Info → A Personal Access Token (PAT) can be used instead. To create a PAT, visit https://app.docker.com/settings Password: time="2025-02-27T11:24:58+08:00" level=info msg="Error logging in to endpoint, trying next endpoint" error="Get \"https://harbor.oinone.top/v2/\": dial tcp 0.0.0.0:443: connect: connection refused" Get "https://harbor.oinone.top/v2/": dial tcp 0.0.0.0:443: connect: connection refused kfpt@kfpt-virtual-machine:~$ sudo -i root@kfpt-virtual-machine:~# docker login –username=schhsw_oinone harbor.oinone.top i Info → A Personal Access Token (PAT) can be used instead. To create a PAT, visit https://app.docker.com/settings Password: Error response from daemon: Get "https://harbor.oinone.top/v2/": dial tcp 0.0.0.0:443: connect: connection refused 排查过程: 排除到后面发现原因是DNS配置的问题,换了一个阿里云的IP就可以了

    2025年3月13日
    52300

Leave a Reply

登录后才能评论