在 Travis 實現 Docker Cache

docker 前一篇寫了『用 Travis 自動上傳 Docker Image』,Travis 跑完測試成功後才自動編譯 Docker Image 並且上傳到 Docker Hub。在每次 commit 後,Travis 執行 docker build 時間總是非常長,當然原因很多。如果選用的 Docker base image 非常肥,指令非常多,每次編譯都要重新下載及執行指令,所以執行時間就是這麼長。本篇就是想辦法減少 Travis 編譯 Image 時間,就像把 node_modules 壓縮起來,下次執行測試前先解壓縮再安裝,可以大幅減少 npm install 時間(可以參考之前的『用一行指令加速 npm install』)。這邊我們就需要用到 Travis 的 Cache 功能Continue reading “在 Travis 實現 Docker Cache”

用 Travis 自動上傳 Docker Image 到 Docker Registry

docker 在今年七月寫了一篇『在 Travis 升級 Docker 和 docker-compose 版本』,就在上個月底 Travis 終於將 Docker 預設版本換成 1.12.x 版本,並且將 docker-compose 也一併升級到 1.8.0,這樣就可以不用手動升級了。那這篇會紀錄如何用 Travis 自動編譯 Docker Image 並且上傳到 Docker Hub。Docker Hub 提供兩種方式讓開發者上傳 Image,第一種是透過 Command line 下指令手動上傳,另外一種則是在 Docker Hub 後台指定 Dockerfile 路徑及需要執行編譯的分支,這樣只要 Push commit 到 Github,Docker Hub 就會根據 Dockerfile 來自動編譯 Docker Image。本篇會介紹如何透過 Travis 服務來自動上傳 Dokcer Image,像是 Golang 的部屬方式通常是編譯出 Binary 執行檔後,將此執行檔加入 Image 最後才上傳。 Continue reading “用 Travis 自動上傳 Docker Image 到 Docker Registry”

Drone CI Server 搭配 Atlassian Bitbucket Server (前身 Stash)

Screen Shot 2016-09-13 at 10.36.58 AM 目前團隊是使用 Atlassian Bitbucket 搭配 Bamboo,雖然 Bamboo 搭配自家的 Bitbucket (前身是 Stash Server) 整合得相當不錯,但是個人覺得設定上蠻複雜的,所以才想測試看看其他家 CI Service 對團隊學習及設定上更容易。最近找到一套用 Golang 寫的 CI Server 就是 Drone,Drone 線上文件提供了 Github, Gitlab, Gogs, Bitbucket (Stash) 等整合。在整合 Drone 搭配 Bitbucket 時,文件寫得不是很清楚,尤其是在 Bitbucket 建立 Application Link 遇到許多問題,官方文件也沒寫得很清楚,故寫此篇記錄如何將 Drone 服務整合 Bitbucket 伺服器。 Continue reading “Drone CI Server 搭配 Atlassian Bitbucket Server (前身 Stash)”

2016 COSCUP 用 Golang 寫 Microservices

Go-brown-side.sh 今年在 COSCUP 投稿『用 Golang 寫 Microservice』,這場議程最主要是介紹 Golang 入門篇,以及用了哪些 Golang Library 在 Microservices 上,目的希望能多推廣 Golang 語言在 Server 開發上,將來能更多公司導入使用。底下是今年的簡報及大綱: Continue reading “2016 COSCUP 用 Golang 寫 Microservices”

在 Travis 升級 Docker 和 docker-compose 版本

docker Travis 是在 Github 上常用的整合測試服務,支援了各種程式語言 Golang, PHP, Node.js ..等測試及部署,也同時支援了一些常用 Service,像是 Docker, Redis 或 Database。這次來聊聊在 Travis 如何使用 Docker,在 Travis 內建的 Docker 跟 docker-compose 版本都是非常舊,所以使用預設的 docker-compose 指令常常會出現 (詳細 build log 可以參考這裡) Continue reading “在 Travis 升級 Docker 和 docker-compose 版本”

新的 code coverage 線上服務 codecov.io

Screen Shot 2016-07-16 at 3.04.50 PM 代碼覆蓋率 (code coverage) 是開發流程蠻重要的一環,用來評估專案內測試的覆蓋率,也代表了自己寫的程式,至少要測試過一次。在 Github 上面最常用的一套就是 Coveralls 相信大家對於此服務並不陌生,一個好的 Open Source 專案一定會在 Readme 上附上 Coveralls badge,證明自己寫的專案都有經過測試,請安心使用。在導入 Coveralls 服務到專案內時,安裝步驟有點小複雜,雖然不難,但是還是需要安裝一些 Tool 才能完成,底下用 Golang 為例。 Continue reading “新的 code coverage 線上服務 codecov.io”

用 Docker 改善團隊合作模式

docker 今年第一次參加 iThome 舉辦的 DevOps Summit 研討會,這次舉辦在台北文創大樓,就是在大巨蛋隔壁,很高興今年第一次投稿就錄取,題目是『用 Dokcer 改善團隊合作模式』,主題偏向如何用 Docker 改善個人或團隊的開發狀況,尤其是在 IC 或系統廠如何導入 Docker。研討會上沒有提到很深入的 Docker 應用,在投影片內強調的是,如何將 GitDocker 帶入團隊內不同角色,包含 QA 及 PM,讓大家在團隊合作上能夠各自獨立,不會互相影響。底下就是我今年的投影片: Continue reading “用 Docker 改善團隊合作模式”