48小時的教訓告訴你如何在七牛ufop下安裝ImageMagick

背景

故事是這樣的:html

公司系統裏面有一個服務是 PDF2JPG (實際上應該是 PPT2JPG, 只是PPT2PDF這一步驟咱們利用七牛的雲服務來完成。) 早期的時候咱們根據系統負載已經實際狀況採用了 crontab 來定時獲取數據庫須要轉換的數據。因此這個服務的QPS是 1/60 QPS。是的,你沒看錯就是這麼低,可是用起來還好,畢竟用戶容量不大。git

可是隨着用戶規模的增大,咱們不得不正視一個問題:就是如何知足用戶轉換的動態需求 (用戶的需求爆發點通常爆發在晚上6點左右)。正好七牛的 UFOP 能知足咱們的需求。並且還有免費的額度。github

內存    CPU    系統盤    按需¥/每小時    月計
    M0C1    512MB    1 Core    10GB    0.088    63.36
    M1C2    1GB    2 Core    10GB    0.176    126.72
    M4C8    4GB    8 Core    10GB    0.650    468
    M8C12    8GB    12 Core    10GB    1.300    936
注意:M0C1的狀況下,標準用戶 和 高級用戶 ,有 750 小時/月的免費額度。

咱們的規劃是這樣的 在閒時只開啓一個 M1C2 實例, 忙時再開啓兩個 M1C2 實例。這樣既保證有效性也能保證經濟性 golang

實施

寫七牛的代碼,必定不能只看官方網站的文檔,必定要找他們 github 上的項目 qiniu-ufop-goufop-golang。 不過即便 github 上的也不能全信,有些也是過時的。docker

只要你記住以上這個,那麼寫代碼根本不算什麼!數據庫

部署

不少人覺得是最難的代碼都寫了,那麼部署應該是分分鐘的問題。那就看一下下面的血淚圖吧。ubuntu

血淚圖

七牛採用的是 docker 的方案,自建了更新源,隔離了外網連接。因此安裝一個 ImageMagick 別提有多疼了!網站

首先須要安裝 libpng , 接着安裝 ghostscript ,而後再安裝 ImageMagick,但是 ImageMagick 死活都找不到 libpng 的路徑,因此沒辦法支持 png。 你必須得先安裝 pkg-config 才行。ui

完整的 ufop.yaml 代碼以下。spa

image: ubuntu
build_script:
 - echo building...
 - mv $RESOURCE/* ./
 - sudo ldconfig /usr/local/lib
 - tar zxvf pkg-config-0.29.tar.gz > /dev/null
 - cd pkg-config-0.29 && ./configure --with-internal-glib && make > /dev/null 2>&1 && sudo make install > /dev/null
 - tar zxvf libpng-1.6.24.tar.gz > /dev/null
 - cd libpng-1.6.24 && ./configure > /dev/null && make > /dev/null && sudo make install > /dev/null
 - tar zxvf ghostscript-9.15.tar.gz > /dev/null
 - cd ghostscript-9.15 && ./configure > /dev/null && make > /dev/null 2>&1 && sudo make install > /dev/null
 - tar -zxvf ImageMagick.tar.gz > /dev/null
 - /usr/local/bin/pkg-config --list-all
 - cd ImageMagick-7.0.3-4/ && ./configure  --enable-shared=yes > /dev/null && make > /dev/null && sudo make install > /dev/null
 - sudo ldconfig /usr/local/lib
 - echo "convert -list format"
 - chmod +x ./run
run: ./run qufop.conf

附上結果圖:

圖片描述

相關文章
相關標籤/搜索