文章加密

;

2019年10月17日 星期四

docker, drone,webhook, pipeline, k8s

docker

其官網ID:a...e8086, 密碼a..e1..6
https://hub.docker.com/
sign in and download install
結果裝不起來

https://skychang.github.io/2017/01/06/Docker-Docker_for_Windows_10_First/

另一種方式安裝https://blog.yowko.com/homebrew-docker/

http://www.voidcn.com/article/p-sfwzrmph-ew.html  docker 打包 node 项目

https://joshhu.gitbooks.io/dockercommands/content/Containers/DockerRun.html  快速建立你的第一個Docker服務

https://yeasy.gitbooks.io/docker_practice/
https://www.youtube.com/watch?v=k5iwKUZY9tk 前端工程師一定要知道的 Docker 虛擬化容器技巧 (18:34)
https://www.arthurtoday.com/2009/12/host-guest.html .Host OS 和 Guest OS 是什麼 ?

有像git,但是用在打包OS(operation system, 作業系統)

*12招給前端的密技

  1. pull
  2. images (映像檔)
  3. run
  4. ps (看行程)
  5. stop
  6. start
  7. exec (進入容器,與run的差別在run會自動開啟來)
  8. commit (提交image)
  9. tag (修改標籤名稱)
  10. rmi (移除image和tag,remove image的縮寫)
  11. rm (移除容器)
  12. push



Drone


如果你曾經開發過需要經常更新版本的應用程式(如 API Service),每次把寫完的 code push 到 Git 後,通常還需要做以下這些事情:
  1. 將修改後的 Release 版本打包完成
  2. 連線到 Host VM 並停止原有服務
  3. 覆蓋原有的程式版本
  4. 重新啟動服務
其實一直以來我都是認命的這樣部署我的 Service 的,直到有一天因為專案有臨時的緊急需求,一整天重複做了快十次這樣的流程後,心裡突然有一個聲音告訴我:
John啊,你一定要做自動部署,你如果現在不出來做,連天公伯都不會原諒你!
剛好團隊近期也導入 Docker 做容器服務管理,在尋找了一些資料以及自動部署流程的教學後,便決定使用 Drone 這套服務來搭配之前已經建置在 Docker 上的 Gitea 版本控制系統來建立一套簡易的 Continuous Delivery 流程。













理想中的自動部署流程,大概是 Push 完 code 就可以泡咖啡等結果的概念。

為什麼選擇Drone?

  • 佔用記憶體資源少(僅約20MB)
  • 所有建置環境皆在 Docker 上實作,避免與系統互相干擾
  • 有多樣 Plugin 可供串接服務
  • 可與各種版本控制系統快速串接(GitHub、GitLab、Gitea、Gogs、Bitbucket 等)
  • 以簡易撰寫 yaml 檔案的方式定義部署流程
以下會詳細介紹從安裝 Docker 到將 Drone 執行為 Docker Container 提供未來部署使用的流程。
(提醒:以下的安裝步驟皆為在 Ubuntu Server 16.04 LTS 環境下安裝,若你的 OS 為 Windows 或 macOS,請參考 Docker 官方文件說明完成安裝。)


https://medium.com/asiayo-engineering/%E7%94%A8-drone-%E6%89%93%E9%80%A0-ci-cd-flow-36b9d14c7620  用 Drone 打造 CI/CD flow

ref:https://medium.com/@stu60610/%E4%BD%BF%E7%94%A8-docker-drone-%E5%BB%BA%E7%AB%8B%E7%B0%A1%E6%98%93%E8%87%AA%E5%8B%95%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B-part1-a180eb48ff37


webhook

https://ithelp.ithome.com.tw/articles/10193212   第四天:認識 Webhook
Webhook 是讓一個網站能訂閱另一個網站的方法
*上面那篇介紹了實際上是介紹了rails做後端與資料庫,有用到

  • postman
  • imgur

   學會怎麼把圖檔弄到 imgur

  def get_weather_from_cwb
    uri = URI('http://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js')
    response = Net::HTTP.get(uri)
    start_index = response.index('","') + 3
    end_index = response.index('"),') - 1
    "http://www.cwb.gov.tw" + response[start_index..end_index]
  end

把氣象圖丟上imgur(那為什麼不是我們自己保存圖片就好呢?因為存圖片要占空間跟頻寬,所以我選擇用 imgur 的空間放圖。imgur 有一個蠻好的地方是,你可以直接把圖片網址給他,他就會幫你備份圖片了,所以我們不用真的把圖檔抓回來再上傳到 imgur。而且作者當時的氣象圖網址是http開頭,而line要求https,imgur提供的是https,現在的話氣象局已經改成https

  def upload_to_imgur(image_url)
    url = URI("https://api.imgur.com/3/image")
    http = Net::HTTP.new(url.host, url.port)
    http.use_ssl = true
    request = Net::HTTP::Post.new(url)
    request["authorization"] = 'Client-ID be2d83405627ab8'

    request.set_form_data({"image" => image_url})
    response = http.request(request)
    json = JSON.parse(response.read_body)
    begin
      json['data']['link'].gsub("http:","https:")
    rescue
      nil
    end
end

pipeline
https://docs.drone.io/configure/pipeline/

k8s
not clear

沒有留言:

張貼留言