偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

部署一個(gè)私有的在線繪圖服務(wù)

開源
要完整部署該項(xiàng)目需要用 ant 來(lái)編譯 war,并用 tomcat 托管。但是,我不想用 ant 去編譯也不想和 Tom 貓發(fā)生什么關(guān)系,所以我要對(duì)這個(gè)開源項(xiàng)目進(jìn)行閹割。

 現(xiàn)在很多服務(wù)都已經(jīng)云端化了,瀏覽器早已不是只用來(lái)瀏覽信息的瀏覽器了。

[[324053]]

在線繪圖

國(guó)內(nèi)最常用的就是 ProcessOn 了,功能很全,就是免費(fèi)額度有點(diǎn)少。

 

國(guó)外最知名的就是 Draw.io 了,基本上就是免費(fèi)的,常常集成在各種服務(wù)里。就是速度有點(diǎn)慢,不,是非常慢。

 

Draw.io 現(xiàn)在改名了,叫 diagrams.net。最關(guān)鍵的是,它還是開源的!

部署一個(gè) Draw.io

Draw.io 是基于mxGraph library[1]構(gòu)建的,后端用 Java 實(shí)現(xiàn)了簡(jiǎn)單的文件導(dǎo)出和處理功能,畫圖的功能都是通過 JavaScript 在瀏覽器的,所以是完全可以用靜態(tài)頁(yè)面的方式來(lái)托管一個(gè)不需要文件處理和鑒權(quán)的繪圖站點(diǎn)。

有興趣請(qǐng)移步至該項(xiàng)目:

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

要完整部署該項(xiàng)目需要用 ant 來(lái)編譯 war,并用 tomcat 托管。但是,我不想用 ant 去編譯也不想和 Tom 貓發(fā)生什么關(guān)系,所以我要對(duì)這個(gè)開源項(xiàng)目進(jìn)行閹割。

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

來(lái)來(lái)來(lái),folk 一下這個(gè)項(xiàng)目開干,新項(xiàng)目地址:

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

萬(wàn)事具備,用一行代碼在本地托管:

  1. python3 -m http.server 8000 

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

 

改一下 README.md 就推送了吧。好像我只花了幾分鐘,其實(shí)我調(diào)試了幾小時(shí),開發(fā)為什么總估時(shí)間不準(zhǔn)呢?奇怪。

部署到 Docker

沒有容器化的服務(wù)是沒有靈魂的服務(wù),那么我們就給它加點(diǎn)靈魂。加靈魂需要一個(gè) 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 

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

1.用的是 apline 的基礎(chǔ)鏡像,這個(gè)是開源界最常用的基礎(chǔ)鏡像,因?yàn)樗捌涞男?,一般只有?MB 或者幾十 MB。對(duì)應(yīng)的 apline 鏡像還有 node,java,go 版的,應(yīng)有盡有。

2.先安裝flask后copy應(yīng)用,因?yàn)閒lask安裝后這個(gè)layer就不變了,但是app每次打包都會(huì)不一樣。

為啥要加個(gè)flask啊?因?yàn)槲蚁朐谒L問后端報(bào)錯(cuò)時(shí)可以更友好一點(diǎn),人性化和用戶體驗(yàn),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 . 

讓這個(gè)靈魂跑起來(lái)。

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

訪問本地5000端口,一點(diǎn)毛病都沒有,注意 --rm在調(diào)試時(shí)很有用,它可以幫你自動(dòng)清理退出的容器。

讓我們來(lái)發(fā)布這個(gè)靈魂到全世界。

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

咦?這個(gè)靈魂好像有點(diǎn)重啊,完全推不動(dòng)嘛。用Poratiner查看一下里面到底有什么東西。

 

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

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

321再來(lái)一遍靈魂序曲,嗯,有內(nèi)味了。

拿來(lái)主義

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

1. 靜態(tài)托管

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

2. Docker部署

一句命令即可。

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

3. 薅我羊毛

這個(gè)服務(wù)我已經(jīng)部署到了我的主機(jī),免費(fèi)用,隨便用,但不保證它的速度和生命延續(xù)。

  • https://draw.pytips.cn

就這樣,Peace。

References

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

責(zé)任編輯:武曉燕 來(lái)源: 哎媽呀Bug
相關(guān)推薦

2017-01-12 20:37:03

公共云云存儲(chǔ)云計(jì)算

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

私有云服務(wù)支持

2010-06-30 11:45:14

2013-03-27 15:23:51

Android開發(fā)demo下載學(xué)習(xí)

2012-09-13 14:07:59

服務(wù)器云戰(zhàn)略

2020-04-16 20:42:16

樹莓派Rocket.ChatLinux

2020-07-21 08:42:16

搞垮服務(wù)器日志

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

團(tuán)隊(duì)管理技術(shù)轉(zhuǎn)型

2020-08-25 07:48:17

Kubernetes集群系統(tǒng)

2016-10-11 16:58:51

云安全云計(jì)算

2020-06-15 08:22:57

Python編程個(gè)人助理

2018-12-29 08:15:28

Tomcat應(yīng)用部署

2021-08-10 07:27:42

Elasticsear集群開源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)