iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
DevOps

DevOps 萌新的 TeamCity 極速上手寶典系列 第 4

第四天:以 Docker 運行 TeamCity

雖然 TeamCity 軟體包已經將所有元件都打包成 Jar 檔,還寫了可以跨平台使用的 Launcher,但對於只是想用 TeamCity 卻不熟悉 JVM 的開發者來說仍不夠方便,或是對於 DevOps 團隊來說,維護不熟悉的技術棧工具仍有風險。這時,我們可以試試使用 Docker 來運行 TeamCity。

先建立一個可以運行 Docker 的環境

首先我們得先建立一個可以運行 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 更新了使用條款,別忘了檢查一下自己的使用範圍是否有需要做出對應的動作喔!

運行 TeamCity

有 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。

適用情境

本篇文章使用的安裝方式,比較適合以下幾種情境:

  1. 不熟悉 JVM 生態系,排斥手動安裝 JDK 的人
  2. 熟悉 Docker 操作,習慣透過 Docker 建立隔離環境
  3. 擁有整台主機的控制權,有足夠權限可以使用 Docker

參考資料


上一篇
第三天:以軟體包安裝 TeamCity
下一篇
第五天:使用 TeamCity Cloud
系列文
DevOps 萌新的 TeamCity 極速上手寶典31

尚未有邦友留言

立即登入留言