成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

部署一個私有的在線繪圖服務

開源
要完整部署該項目需要用 ant 來編譯 war,并用 tomcat 托管。但是,我不想用 ant 去編譯也不想和 Tom 貓發生什么關系,所以我要對這個開源項目進行閹割。

 現在很多服務都已經云端化了,瀏覽器早已不是只用來瀏覽信息的瀏覽器了。

[[324053]]

在線繪圖

國內最常用的就是 ProcessOn 了,功能很全,就是免費額度有點少。

 

國外最知名的就是 Draw.io 了,基本上就是免費的,常常集成在各種服務里。就是速度有點慢,不,是非常慢。

 

Draw.io 現在改名了,叫 diagrams.net。最關鍵的是,它還是開源的!

部署一個 Draw.io

Draw.io 是基于mxGraph library[1]構建的,后端用 Java 實現了簡單的文件導出和處理功能,畫圖的功能都是通過 JavaScript 在瀏覽器的,所以是完全可以用靜態頁面的方式來托管一個不需要文件處理和鑒權的繪圖站點。

有興趣請移步至該項目:

  • https://github.com/jgraph/drawio

要完整部署該項目需要用 ant 來編譯 war,并用 tomcat 托管。但是,我不想用 ant 去編譯也不想和 Tom 貓發生什么關系,所以我要對這個開源項目進行閹割。

  • 去除所有國外的在線服務,比如 Google Drive,OneDrive等等
  • 避免跳轉到 Draw.io 官網
  • 去除后端服務,只要能在瀏覽器繪圖并緩存,能保存為本地文件

來來來,folk 一下這個項目開干,新項目地址:

  • https://github.com/tobyqin/drawio-local。
  1. # 第一步,干掉Java,只保留Web應用 
  2. mv -r src/main/webapp /temp/webapp 
  3. rm -rf * 
  4. mv -r /tmp/webapp . 
  5.  
  6. # 第二步,去掉在線服務 
  7. code js/PreConfig.js 
  8. # 配置 local='1' 
  9. # 參考 https://desk.draw.io/support/solutions/articles/16000042546-what-url-parameters-are-supported- 
  10.  
  11. # 第三步,修改錯誤的資源引用,用Chrome的開發者工具 
  12. # 第四步,加一些黑科技到 index.html 來hack外部跳轉,不展開說明 

萬事具備,用一行代碼在本地托管:

  1. python3 -m http.server 8000 

OK 啦,干凈清爽的感覺就是那么好。

 

改一下 README.md 就推送了吧。好像我只花了幾分鐘,其實我調試了幾小時,開發為什么總估時間不準呢?奇怪。

部署到 Docker

沒有容器化的服務是沒有靈魂的服務,那么我們就給它加點靈魂。加靈魂需要一個 Dockerfile,這樣寫:

  1. FROM frolvlad/alpine-python3:latest 
  2.  
  3. RUN mkdir /app 
  4. WORKDIR /app 
  5.  
  6. RUN pip3 install flask 
  7. ADD . /app/ 
  8.  
  9. EXPOSE 5000 
  10. CMD python3 app.py 

這個靈魂是有講究的,為什么這么說呢?

1.用的是 apline 的基礎鏡像,這個是開源界最常用的基礎鏡像,因為它及其的小,一般只有幾 MB 或者幾十 MB。對應的 apline 鏡像還有 node,java,go 版的,應有盡有。

2.先安裝flask后copy應用,因為flask安裝后這個layer就不變了,但是app每次打包都會不一樣。

為啥要加個flask啊?因為我想在它訪問后端報錯時可以更友好一點,人性化和用戶體驗,Understand?

  1. @app.route('/not-support', methods=['GET''POST']) 
  2. def not_support(): 
  3.     return "Sorry, this action is not supported." 

好啦,打包鏡像走起。

  1. docker build -t tobyqin/drawio-local:latest . 

讓這個靈魂跑起來。

  1. docker run -it --rm -p 5000:5000  tobyqin/drawio-local 

訪問本地5000端口,一點毛病都沒有,注意 --rm在調試時很有用,它可以幫你自動清理退出的容器。

讓我們來發布這個靈魂到全世界。

  1. docker login 
  2. docker push tobyqin/drawio-local 

咦?這個靈魂好像有點重啊,完全推不動嘛。用Poratiner查看一下里面到底有什么東西。

 

鏡像總共才4M,應用居然接近100M,要給靈魂減減肥了。在根目錄加個 .dockerignore 文件,把不想打包的文件統統寫在里面。

  1. .git 
  2. .DS_Store 
  3. .vscode 
  4. *.md 
  5. ... 

321再來一遍靈魂序曲,嗯,有內味了。

拿來主義

我想你是不愿意再踩一遍我的坑了,反正這個東西做一遍就行了,拿去用吧。

1. 靜態托管

直接到https://github.com/tobyqin/drawio-local 下載zip解壓后丟到nginx或者iis即可,順手給項目加個星唄。

2. Docker部署

一句命令即可。

  1. docker run --name="drawio-local" --restart always -p 5000:5000  tobyqin/drawio-local 

3. 薅我羊毛

這個服務我已經部署到了我的主機,免費用,隨便用,但不保證它的速度和生命延續。

  • https://draw.pytips.cn

就這樣,Peace。

References

[1] mxGraph library: https://github.com/jgraph/mxgraph

責任編輯:武曉燕 來源: 哎媽呀Bug
相關推薦

2017-01-12 20:37:03

公共云云存儲云計算

2010-03-08 17:20:56

搭建私有云

2015-02-02 15:22:31

私有云OpenStackCloudStack

2015-11-25 09:58:36

私有云云遷移虛擬化

2015-10-15 14:32:34

2017-08-31 09:32:11

私有云服務支持

2010-06-30 11:45:14

2013-03-27 15:23:51

Android開發demo下載學習

2012-09-13 14:07:59

服務器云戰略

2020-04-16 20:42:16

樹莓派Rocket.ChatLinux

2020-07-21 08:42:16

搞垮服務器日志

2025-04-21 03:00:00

2018-06-05 14:40:35

Linux樹莓派繪圖儀

2010-09-25 09:04:01

私有云

2019-08-09 11:24:03

團隊管理技術轉型

2020-08-25 07:48:17

Kubernetes集群系統

2016-10-11 16:58:51

云安全云計算

2020-06-15 08:22:57

Python編程個人助理

2018-12-29 08:15:28

Tomcat應用部署

2021-08-10 07:27:42

Elasticsear集群開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区久久 | 午夜精品久久久久99蜜 | 国产日韩精品久久 | 国产91视频一区二区 | 日韩成人免费视频 | 免费三级黄 | 麻豆av片 | 中文字幕亚洲一区二区三区 | 亚洲综合无码一区二区 | 久久久久亚洲 | 99色在线 | 黑人精品欧美一区二区蜜桃 | 91精品免费视频 | 欧美精品福利 | 精品亚洲一区二区 | 97人人澡人人爽91综合色 | 久久精品亚洲一区二区三区浴池 | 亚洲日本中文字幕在线 | 精品久久久久久久久久久久 | www日本在线播放 | 国产日韩欧美在线一区 | 欧美一级高清片 | 成人在线观看免费 | 欧美色性 | 国产最新精品视频 | k8久久久一区二区三区 | 亚洲精久 | 免费在线观看h片 | 91精品国产91久久综合桃花 | 亚洲欧美国产一区二区三区 | 99视频在线 | 天天干视频网 | 国产精品一区二区电影 | 成人久久网 | 国产色黄| 国产精品视屏 | 成人免费一区二区三区视频网站 | 亚洲欧美中文日韩在线v日本 | 天堂av中文在线 | 亚洲超碰在线观看 | 日日躁狠狠躁aaaaxxxx |