无代码docker启动说明

1. 安装docker

1.1 Linux内核系统

1.1.1 检查防火墙(以CentOS7为例)

查看防火墙是否开启

systemctl status firewalld

如防火墙处于开启状态,有2种处理方式,选择其中一种,开发环境如内网环境建议选择处理方案1

处理方案1:停止防火墙

systemctl stop firewalld

处理方案2:开放docker镜像内置中间件透出的端口

  • 88:web访问端口
  • 8099:后端Java服务端口
  • 19876:rocketmq的namesrv端口:
  • 6378:缓存redis的端口
  • 3307:数据库mysql的端口
  • 2182:zookeeper的端口
  • 20880:dubbo的通信端口
  • 15555:预留Java的debug端口
  • 10991:rocketmq的broker端口
    查看防火墙已经开放的端口

    firewall-cmd --list-ports

    # 防火墙新增开放端口示例:
    firewall-cmd --permanent --zone=public --add-port=88/tcp
    #新增以后生效需要重新加载防火墙
    systemctl reload firewalld
    #查看端口是否开放成功
    firewall-cmd --list-ports
    也可以从外部使用telnet命令检查端口是否开放成功,如telnet 192.168.0.121 3307

    1.1.2 官方安装地址:https://docs.docker.com/engine/install/centos/

    #删除原有版本
    yum remove docker \
            docker-client \
            docker-client-latest \
            docker-common \
            docker-latest \
            docker-latest-logrotate \
            docker-logrotate \
            docker-engine
    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    如果docker这个源异常可以用阿里云的源 
    #yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    #启动docker
    systemctl start docker
    #查看是否安装成功
    docker -v

    1.1.3 可使用一键安装脚本

    wget https://pamirs.oss-cn-hangzhou.aliyuncs.com/docker/quick-install.sh
    sh quick-install.sh

    1.2 无公网环境Linux系统

    需要根据指定的版本以及内核架构来生成对应docker以及镜像包

    1.3 window环境

    https://docs.docker.com/desktop/install/windows-install/

2. 解压提供的部署.zip

部署.zip包含:

  • settings-3.6.3.xml:拉取平台jar的maven仓库settings,对应maven版本3.6.x
  • settings-3.8.x.xml:拉取平台jar的maven仓库settings,对应maven版本3.8.x
  • pamirs-demo:后端示例工程
  • oinone-op-ds-all-full:包含所有中间件及前后端工程,用于启动docker脚本
  • oinone-op-ds-all-mini:仅包含前后端工程,用于启动docker脚本
  • license:平台证书
  • docker和mvn账号信息.md

3. 对应版本的docker镜像拉取

镜像地址 镜像概述
harbor.oinone.top/oinone/designer:4.8.2.4-allinone-full 包含所有中间件及前后端工程
harbor.oinone.top/oinone/designer:4.8.2.4-allinone-mini 仅包含前后端工程

👆🏻上面镜像地址中的4.7.9是示例版本号,具体安装时根据数式提供的为准。

#注意:docker镜像拉取的账号密码在部署.zip里面
docker login --username=用户名 harbor.oinone.top
docker pull harbor.oinone.top/oinone/designer:xxx

4. 修改startup.sh中的路径

4.1 linux环境修改参数

在文件中找到如下
configDir=/opt/docker/oinone-op-ds-all-full
version=4.8.2.4
IP=192.168.0.121

  • 修改configDir的路径(下载oinone-op-ds-xx.zip解压后的路径)
  • 修改对应的镜像版本号
  • 修改对应的IP为docker宿主机IP

4.2 window环境修改参数

在文件中找到如下
set configDir=/d/shushi/docker/oinone-op-ds-all-full
set version=4.8.2.4
set IP=192.168.0.121

  • 修改configDir的路径((下载oinone-op-ds-xx.zip解压后的路径)
  • 修改对应的镜像版本号
  • 修改对应的IP为docker宿主机IP

5. (用oinone-op-ds-all-full版本可跳过)修改conf/application.yml

  • 对应中间件的配置:指定对应IP和端口或密码,把其中192.168.0.121改为宿主机IP
    • zookeeper
    • mysql
    • rocket-mq
    • redis
    • 阿里云oss配置

6. 修改mq/broker.conf(**注意:使用allinone-full包含中间件版本)

修改其中brokerIP1的IP从192.168.0.121改成宿主机IP

brokerClusterName = DefaultCluster
namesrvAddr=127.0.0.1:9876
brokerIP1=192.168.0.121
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable=true
listenPort=10991
transactionCheckInterval=1000
#存储使用率阀值,当使用率超过阀值时,将拒绝发送消息请求
diskMaxUsedSpaceRatio=98
#磁盘空间警戒阈值,超过这个值则停止接受消息,默认值90
diskSpaceWarningLevelRatio=99
#强制删除文件阈值,默认85
diskSpaceCleanForciblyRatio=97

7. 启动Docker

7.1 linux环境启动

  • 在终端执行 sh startup.sh

7.2 window环境启动

  • 用PowerShell 执行 .\startup.cmd

7.3 查看日志,检查是否启动成功

在logs目录下可看到生成的日志文件,第一次启动时间会相对长一些,等看到日志文件中输出 启动耗时 。。。等字样,代表启动成功
无代码docker启动说明
此时可以访问http://宿主机IP:88 默认登录账号密码为admin

Oinone社区 作者:数式-海波原创文章,如若转载,请注明出处:https://doc.oinone.top/install/4137.html

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

(1)
数式-海波的头像数式-海波数式管理员
上一篇 2023年11月6日 pm2:39
下一篇 2023年11月6日

相关推荐

  • 【MSSQL】后端部署使用MSSQL数据库(SQLServer)

    MSSQL数据库配置 驱动配置 Maven配置(2017版本可用) <mssql.version>9.4.0.jre8</mssql.version> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>${mssql.version}</version> </dependency> 离线驱动下载 mssql-jdbc-7.4.1.jre8.jarmssql-jdbc-9.4.0.jre8.jarmssql-jdbc-12.2.0.jre8.jar JDBC连接配置 pamirs: datasource: base: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=base username: xxxxxx password: xxxxxx initialSize: 5 maxActive: 200 minIdle: 5 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true asyncInit: true 连接url配置 暂无官方资料 url格式 jdbc:sqlserver://${host}:${port};DatabaseName=${database} 在jdbc连接配置时,${database}必须配置,不可缺省。 其他连接参数如需配置,可自行查阅相关资料进行调优。 方言配置 pamirs方言配置 pamirs: dialect: ds: base: type: MSSQL version: 2017 major-version: 2017 pamirs: type: MSSQL version: 2017 major-version: 2017 数据库版本 type version majorVersion 2017 MSSQL 2017 2017 PS:由于方言开发环境为2017版本,其他类似版本原则上不会出现太大差异,如出现其他版本无法正常支持的,可在文档下方留言。 schedule方言配置 pamirs: event: enabled: true schedule: enabled: true dialect: type: MSSQL version: 2017 major-version: 2017 type version majorVersion MSSQL 2017 2017 PS:由于schedule的方言在多个版本中并无明显差异,目前仅提供一种方言配置。 其他配置 逻辑删除的值配置 pamirs: mapper: global: table-info: logic-delete-value: CAST(DATEDIFF(S, CAST('1970-01-01 00:00:00' AS DATETIME), GETUTCDATE()) AS BIGINT) * 1000000 + DATEPART(NS, SYSUTCDATETIME()) / 100 MSSQL数据库用户初始化及授权 — init root user (user name can be modified by oneself) CREATE LOGIN [root] WITH PASSWORD = 'password'; — if using mssql database, this authorization is required. ALTER SERVER ROLE [sysadmin] ADD MEMBER [root];

    2024年10月18日
    1.1K00
  • 流程设计器部署注意事项

    准备部署环境所需数据 导出开发/测试环境用到的设计器的的元数据json、设计器业务数据json、自定义组件json在业务工程中准备安装代码 安装元数据json 安装设计器业务数据json 安装自定义组件json 【重要】上线后业务工程中安装工作流元数据和流程设计器数据的代码注释掉,防止已经设置过的流程被重写覆盖 参考文档 流程设计器的导入导出 界面设计器的导入导出 数据可视化的导入导出 确认生产的项目证书和设计器证书已经获取到并配置正确 证书配置方式 通过yml配置 logging: level: # schedule日志过滤,减少不必要的日志 com.taobao.pamirs.schedule.taskmanager.TBScheduleManagerStatic: error pamirs: license: #改成平台提供证书的路径以及subject subject: xxxx path: – licence/xxxx_boot.lic java -jar通过启动参数配置-Dsubject=xxx -Dlicense=/aaa/bb/c.lic 参考文档 pamirs-license 许可证使用常见问题 yml配置 【重要】流程设计器和项目基础环境必须一致, 包括(redis、数据库)。其中数据库的配置要求,相同模块指向的数据源必须相同,通过ds-map指定。 【重要】zk的rootPath 、mq的topic-prefix、schdule的ownSign 配置跟业务工程保持不一致【影响流程发布后重复触发】 【重要】流程设计器若和项目部署在同一台机器上,则 工作流和项目的sql_record的配置(pamirs.record.sql.store)必须分开,否则可能导致工作流任务重复。 spring: rocketmq: name-server: 127.0.0.1:9876 #ACL配置 #accesskey: xxxx #secretkey: xxx pamirs: zookeeper: zkConnectString: 127.0.0.1:2181 zkSessionTimeout: 60000 rootPath: /my_zk event: notify-map: system: ROCKETMQ biz: ROCKETMQ logger: ROCKETMQ enabled: true schedule: enabled: true ownSign: my_own_sign ds-map确认,设计器内公共业务模块和业务工程的业务模块的ds-key需要一致,实际的数据源也需要一致 确认业务工程和设计器的配置项pamirs:record:sql:store的值,2个配置文件里的值需要是不一样的 pamirs: record: sql: store: /aaa/bbb 部署方式确认 Jar包部署方式 前端引入相关依赖 业务工程的前端需要依赖流程设计器 前端package.json新增依赖"@kunlun/workflow-designer": "~4.7.0" 在main.ts的VueOioProvider()方法执行前导入依赖 import '@kunlun/workflow-designer/dist/kunlun-workflow-designer.css'; import '@kunlun/workflow-designer'; VueOioProvider( { dependencies: { vue: import('vue'), lodashEs: import('lodash-es'), antDesignVue: import('ant-design-vue'), antDesignIconsVue: import('@ant-design/icons-vue'), elementPlusIconsVue: import('@element-plus/icons-vue'), elementPlus: import('element-plus'), kunlunDependencies: import('@kunlun/dependencies'), kunlunVueUiAntd: import('@kunlun/vue-ui-antd'), kunlunVueUiEl: import('@kunlun/vue-ui-el'), antvDataSet: import('@antv/data-set'), antvG2: import('@antv/g2'), echarts: import('echarts') } } ); 后端工作流设计器Jar包方式启动,后端无代码设计器Jar包启动方法 docker镜像部署方式 线上允许部署流程设计器镜像,直接通过镜像运行后容器的id+端口访问设计器 部署完成后,已设计的流程需要重新选择的地方 触发字段 所有自定义函数 审批人/转交人,模型相关选的字段 检查工作流触发是否正常

    2024年5月28日
    1.7K00
  • 【OceanBase】后端部署使用 OceanBase 数据库(海扬/OB)

    OceanBase 数据库配置 驱动配置 Maven配置(4.2.5.3版本可用) <oceanbase.version>2.4.14</oceanbase.version> <dependency> <groupId>com.oceanbase</groupId> <artifactId>oceanbase-client</artifactId> <version>${oceanbase.version}</version> </dependency> PS: oceanbase 驱动必须使用 2.4.5 版本或以上,低于此版本的驱动无法使用自增ID功能,无法正常启动。点击查看官方JDBC版本发布记录 JDBC连接配置 OceanBase – Oracle 版 pamirs: datasource: base: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.alipay.oceanbase.jdbc.Driver url: jdbc:oceanbase://10.xxx.xxx.xxx:1001/BASE?useServerPrepStmts=true&useOraclePrepareExecute=true&defaultFetchSize=4096 username: xxxxxx password: xxxxxx validConnectionCheckerClassName: com.alibaba.druid.pool.vendor.OracleValidConnectionChecker validationQuery: SELECT 1 FROM DUAL OceanBase – MySQL 版 pamirs: datasource: base: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.alipay.oceanbase.jdbc.Driver url: jdbc:oceanbase://10.xxx.xxx.xxx:1001/base username: xxxxxx password: xxxxxx 连接 URL 配置 点击查看官方JDBC连接配置说明 URL 格式(OceanBase – Oracle 版) jdbc:oceanbase://${host}:${port}/${database}?useServerPrepStmts=true&useOraclePrepareExecute=true&defaultFetchSize=4096 在jdbc连接配置时,useServerPrepStmts=true&useOraclePrepareExecute=true 必须配置,否则自增主键无法正常使用。 defaultFetchSize=4096 意味着在使用服务端预处理时,游标每次获取的结果集行数,驱动默认值为 10,在进行大量数据获取时会出现卡顿的现象,因此推荐使用 4096 作为其结果集大小。过大可能会导致 OOM,过小可能还是会出现卡顿,该值需要按实际情况进行配置。 其他连接参数如需配置,可自行查阅相关资料进行调优。 方言配置(OceanBase – Oracle 版) PS:OceanBase – MySQL 版无需配置方言,只需修改数据库连接即可正常使用。 pamirs方言配置 pamirs: dialect: ds: base: type: OceanBase version: 4.2.5.3 major-version: oracle-4.2 pamirs: type: OceanBase version: 4.2.5.3 major-version: oracle-4.2 plus: configuration: jdbc-type-for-null: "NULL" using-model-as-property: true using-statement-handler-dialect: true mapper: batch: collectionCommit default-batch-config: read: 500 write: 100 数据库版本 type version majorVersion 4.2.5.3 OceanBase 4.2.5.3 oracle-4.2 PS:由于方言开发环境为4.2.5.3版本,其他类似版本(4.x)原则上不会出现太大差异,如出现其他版本无法正常支持的,可在文档下方留言。 schedule方言配置 pamirs: event: enabled: true schedule: enabled: true dialect: type: Oracle version: 12.2 major-version: 12c type version majorVersion Oracle 12.2 12c PS:由于 schedule 的方言与 Oracle 数据库并无明显差异,OceanBase 数据库可以直接使用 Oracle 数据库方言。 其他配置(OceanBase – Oracle 版) 逻辑删除的值配置 pamirs: mapper: global: table-info: logic-delete-value: (CAST(SYSTIMESTAMP AS DATE) – TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 8640000000000

    2025年7月21日
    74700
  • 开源日志平台: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日
    3.5K00
  • 自定义表达式函数

    由于表达式内的函数在前后端都可能执行,所以同一个表达式需要前后端同时定义 后端表达式自定义 package pro.shushi.pamirs.demo.core.fun; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import pro.shushi.pamirs.meta.annotation.Fun; import pro.shushi.pamirs.meta.annotation.Function; import pro.shushi.pamirs.meta.common.constants.NamespaceConstants; import java.util.Date; import java.util.List; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TEXT; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TIME; import static pro.shushi.pamirs.meta.enmu.FunctionLanguageEnum.JAVA; import static pro.shushi.pamirs.meta.enmu.FunctionOpenEnum.LOCAL; import static pro.shushi.pamirs.meta.enmu.FunctionSceneEnum.EXPRESSION; /** * 自定义函数 */ @Fun(NamespaceConstants.expression) public class DemoCustomFunctions { @Function.Advanced( displayName = "逗号分隔字符串数组", language = JAVA, builtin = true, category = TEXT ) @Function.fun("MY_COMMA") @Function(name = "MY_COMMA", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: MY_COMMA(list)\n函数说明: 将字符串数组转为逗号分隔的字符串" ) public String myComma(List<String> list) { return StringUtils.join(list, ","); } @Function.Advanced( displayName = "根据出生算年龄", language = JAVA, builtin = true, category = TIME ) @Function.fun("CALC_AGE") @Function(name = "CALC_AGE", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: CALC_AGE(birthDate)\n函数说明: 根据出生算年龄" ) public Integer calcAge(Date birthDate) { if (birthDate == null) { return 0; } return new DateTime().getYear() – new DateTime(birthDate).getYear(); } } 前端表达式定义 定义后导入到main.ts里,导入@kunlun/dependencies的代码之后 import { Expression } from '@kunlun/dependencies'; import dayjs from 'dayjs'; Expression.getInstance().registerFunction('MY_COMMA', ['array'], (list: string[]) => { return (list || []) .map((value) => { return `'${value}'`; }) .join(','); }); Expression.getInstance().registerFunction('CALC_AGE', ['string'], (birthDate: string) => { if (birthDate == null) { return 0; } return Math.ceil(dayjs().year() – dayjs(birthDate,…

    2024年7月10日
    1.9K00

Leave a Reply

登录后才能评论