部署bpmn项目实现activiti流程图的在线绘制

本教程基于centos7.6环境中完成

  • github开源项目: https://github.com/Yiuman/bpmn-vue-activiti
  • 软件:git、docker

1. 下载源代码

git clone https://github.com/Yiuman/bpmn-vue-activiti.git

2. 修改Dockerfile文件

在这里插入图片描述

声明基础镜像,将项目打包,把文件复制到nginx的静态文件目录

# 使用Node.js作为基础镜像
FROM node:16.0.0-alpine as build-stage# 设置工作目录
WORKDIR /app# 复制 package.json 和 package-lock.json 文件到工作目录
COPY package*.json ./# 安装项目依赖
RUN npm install --legacy-peer-deps# 复制项目文件到工作目录
COPY . .# 构建生产环境的静态文件
RUN npm run build# 使用Nginx作为基础镜像
FROM nginx:1.21-alpine# 将Vue项目的构建结果复制到Nginx的默认静态文件目录
COPY --from=build-stage /app/dist /usr/share/nginx/html# 复制自定义的Nginx配置文件(如果有)
COPY nginx.conf /etc/nginx/nginx.conf# 暴露容器的端口(如果需要)
EXPOSE 80# 启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]

3. nginx配置文件(不用改)

在这里插入图片描述

这里主要是配置当我们访问容器的80端口时,nginx将我们的请求转发到项目文件中

  #user  nobody;worker_processes  1;events {worker_connections  1024;}http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;gzip on;server {listen  80;#前端location / {index index.html index.htm;   #添加属性。root /usr/share/nginx/html;   #站点目录}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}}

4. 制作docker镜像

注意命令的最后有一个.

docker build -t bpmn-activiti .
  • -t bpmn-activiti :用于给构建的镜像指定一个名称
  • . :这是构建上下文的路径。Docker 将在当前目录下查找 Dockerfile 和构建上下文中的文件,并将其用于构建镜像

镜像制作完成之后可以利用docker images命令查看镜像
在这里插入图片描述

5. 运行docker容器

docker run --name bpmn-activiti -p 8089:80 -d bpmn-activiti
  • –name bpmn-activiti 指定容器名称
  • -p 8089:80 端口映射,其中8089是宿主机端口,80是容器内的端口
  • -d 代表在后台运行
  • bpmn-activiti 代表镜像名称

6. 开放防火墙端口

// 开放8089端口
firewall-cmd --zone=public --add-port=8089/tcp --permanent
// 重启防火墙
firewall-cmd --reload
// 查看所有开放的端口
firewall-cmd --list-ports

7. 浏览器访问

在浏览器访问公网IP:8089@TOC
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/497211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

循环结构:for循环,while循环,do-while,死循环

文章目录 for循环for案例:累加for循环在开发中的常见应用场景 whilewhile循环案例: for和while的区别:do-while三种循环的区别小结死循环 快捷键 ctrlaltt for循环 看循环执行多少次,就看有效数字有几个 快捷键 fori 示例代码&am…

Mybatis plus核心功能-条件构造器

目录 1 前言 2 使用方法 2.1 where条件部分 2.1.1 基于QueryWrapper 2.1.2 基于LambdaQueryWrapper(推荐,优雅) 2.2 set语句比较特殊的部分 2.2.1 基于UpdateWrapper 2.2.2 基于LambdaUpdateWrapper(推荐,优雅) 3 结尾语 1 前言 Mybatis plus…

Scala Intellij编译错误:idea报错xxxx“is already defined as”

今天写scala代码时,Idea报了这样的错误,如下图所示: 一般情况下原因分两种: 第一是我们定义的类或对象重复多次出现,编译器无法确定使用哪个定义。 这通常是由于以下几个原因导致的: 重复定义:在同一个文件…

docker (十二)-私有仓库

docker registry 我们可以使用docker push将自己的image推送到docker hub中进行共享,但是在实际工作中,很多公司的代码不能上传到公开的仓库中,因此我们可以创建自己的镜像仓库。 docker 官网提供了一个docker registry的私有仓库项目&#…

Linux高级编程:进程(一)

1、进程 1.1什么是进程&#xff1a;进行中的程序&#xff08;正在运行中的程序&#xff09;-process过程 程序的一次执行过程 - 进程 hello.c -- 程序源代码 a.out -- 可执行程序 1.2程序和进程的关系&#xff1a; 程序<------>进程 1.3进程怎么来的&#xff1a; 程…

【大数据架构(3)】Lambda vs. Kappa Architecture-选择你需要的架构

文章目录 一. Data Processing Architectures1. Lambda Architecture1.1. 架构说明a. Data Ingestion Layerb. Batch Layer (Batch processing)c. Speed Layer (Real-Time Data Processing)d. Serving Layer 1.2. Lambda Architecture的优缺点1.3. 使用案例 2. Kappa Architect…

【论文阅读-PRIVGUARD】Day4:3节

3 PRIVANALYZER&#xff1a;强制执行隐私政策的静态分析 本节介绍PRIVANALYZER&#xff0c;这是一个用于强制执行由PRIVGUARD追踪的隐私政策的静态分析器**。我们首先回顾LEGALEASE政策语言&#xff0c;我们使用它来正式编码政策&#xff0c;然后描述如何静态地强制执行它们**…

论文设计任务书学习文档|基于Web的个性化简历职位推荐系统的设计与实现

文章目录 论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现 1、论文(设计)的主要任务及目标…

163邮箱SMTP端口号及服务器地址详细设置?

163邮箱SMTP端口号是什么&#xff1f;163邮件SMTP设置教程&#xff1f; 除了基本的邮箱账号和密码外&#xff0c;还需要了解SMTP服务器地址和端口号&#xff0c;以及相应的设置。这些设置对于确保邮件能够顺利发送至关重要。下面&#xff0c;蜂邮EDM将详细介绍163邮箱SMTP端口…

JavaScript 进阶03

编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用 面向对象 面向对象是把事务分解成为一个个对象&#xff0c;然后由对象之间分工与合作。 在面向对象程序开发思想中&a…

[DEBUG] spring boot-如何处理链接中的空格等特殊字符

问题&#xff1a; get或者post中提交的内容可能有空格、#等特殊字符&#xff0c;不做处理的话可能解析错误。 解决&#xff1a; html中&#xff1a; <a th:href"{/listSgrna(id${item.getGeneId()},geneName${item.getGeneName()},genome${genome},sgrnaNum${sgrnaN…

【MATLAB】SVMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 SVMD_MFE_SVM_LSTM神经网络时序预测算法结合了单变量分解&#xff08;SVMD&#xff09;、多尺度特征提取&#xff08;MFE&#xff09;、聚类后展开支持向量机&#xff08;SVM&#xff09;…