自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

[[324053]]

在線繪圖

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

 

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

 

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

部署一個 Draw.io

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

有興趣請移步至該項目:

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

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

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

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

  • 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. # 第三步,修改錯誤的資源引用,用Chrome的開發(fā)者工具 
  12. # 第四步,加一些黑科技到 index.html 來hack外部跳轉(zhuǎn),不展開說明 

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

  1. python3 -m http.server 8000 

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

 

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

部署到 Docker

沒有容器化的服務(wù)是沒有靈魂的服務(wù),那么我們就給它加點靈魂。加靈魂需要一個 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 的基礎(chǔ)鏡像,這個是開源界最常用的基礎(chǔ)鏡像,因為它及其的小,一般只有幾 MB 或者幾十 MB。對應(yīng)的 apline 鏡像還有 node,java,go 版的,應(yīng)有盡有。

2.先安裝flask后copy應(yīng)用,因為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在調(diào)試時很有用,它可以幫你自動清理退出的容器。

讓我們來發(fā)布這個靈魂到全世界。

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

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

 

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

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

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

拿來主義

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

1. 靜態(tài)托管

直接到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. 薅我羊毛

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

  • https://draw.pytips.cn

就這樣,Peace。

References

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

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

2010-03-08 17:20:56

搭建私有云

2017-01-12 20:37:03

公共云云存儲云計算

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ù)器日志

2018-06-05 14:40:35

Linux樹莓派繪圖儀

2025-04-21 03:00:00

2019-08-09 11:24:03

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

2020-08-25 07:48:17

Kubernetes集群系統(tǒng)

2010-09-25 09:04:01

私有云

2016-10-11 16:58:51

云安全云計算

2018-12-29 08:15:28

Tomcat應(yīng)用部署

2020-06-15 08:22:57

Python編程個人助理

2024-02-19 00:21:45

開源圖片
點贊
收藏

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