雖然 TeamCity 軟體包已經將所有元件都打包成 Jar 檔,還寫了可以跨平台使用的 Launcher,但對於只是想用 TeamCity 卻不熟悉 JVM 的開發者來說仍不夠方便,或是對於 DevOps 團隊來說,維護不熟悉的技術棧工具仍有風險。這時,我們可以試試使用 Docker 來運行 TeamCity。
首先我們得先建立一個可以運行 Docker 的環境,這邊分兩條路,假如您是要在一台 Ubuntu Linux 上安裝可以對外運作的 Docker 環境的話,可以參考官網的 這份文件 來安裝。這邊將指令節錄如下:
# 設定 Repository
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Docker 官方 GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 指定 Stable Repository,這邊以 AMD64 為例,若是 ARM 機器請參考官網文件更換指令
$ echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安裝 Docker 引擎
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
假如您只是要在自己的開發機上安裝 Docker 環境,則我會推薦直接安裝 Docker Desktop。直接到 這個網頁 ,依照您使用的作業系統下載安裝檔(macOS 是一個 .dmg
檔、Windows 則是一個 .exe
檔)後,依照安裝程式的指示完成安裝即可。
不論是用以上哪種方式安裝,完成後可以在終端機裡輸入指令測試一下是否成功:
$ docker --version
註:近期 Docker 更新了使用條款,別忘了檢查一下自己的使用範圍是否有需要做出對應的動作喔!
有 Docker 環境後,可以直接用 TeamCity 官網下載頁 的這段指令啟動 TeamCity。
$ docker run -it --name teamcity-server-instance \
-v <path to data directory>:/data/teamcity_server/datadir \
-v <path to logs directory>:/opt/teamcity/logs \
-p <port on host>:8111 \
jetbrains/teamcity-server
# 範例
$ docker run -it --name teamcity-server-instance \
-v /Users/shengyou/JetBrainsRing/data:/data/teamcity_server/datadir \
-v /Users/shengyou/JetBrainsRing/logs:/opt/teamcity/logs \
-p 8111:8111 \
jetbrains/teamcity-server
在這邊提醒一下,記得要自行更換以上指令裡的路徑及埠號。若看到終端機裡回應啟動完成就代表 TeamCity 已經準備好第一次的啟動設定,我們後續會再詳細說明首次啟動設定要做的動作。若要關閉,則在終端機裡按下 Ctrl+C
即可。若好奇 Docker 的動作,可以開啟 Docker Desktop 圖型介面查看使用到的 Image 及 Container。
本篇文章使用的安裝方式,比較適合以下幾種情境: