想請問,我使用Docker作為GitLab Runner時,這些容器之間的關係
我在安裝GitLab Runner時,選擇二進制文件,在某個VM安裝完後,有一個註冊的指令gitlab-runner register
,在這一步,我選擇Docker,並指定了一個Image(A)
而在配置流水線時,gitlab-ci.yml
的image
也會指定一個Image(B)
請問它們之間的關係是什麼?
假設1:A負責接收GitLab的指令,並在VM中的Docker引擎建立一個新的容器B,然後在B內跑‵ gitlab-ci.yml
的命令,執行完後銷毀B
假設2:A負責接收GitLab的指令,並在VM中的Docker引擎建立一個新的容器B,然後在B內跑‵ gitlab-ci.yml
的命令,執行完後停止B,待下次Building時啟動
但若是這樣,指定A的Image的意義在哪裡,應該沒有指定的必要,且指定之後,他如何啟動B的?
當你的 task 配置沒有指定 Image 的時候,則使用預設值,也就是設置 runner 時給的那個 Image(A),作為 runner 啟動時使用的 Image,同理當在 Task 有指定 Image(B) 時,則使用 Image(B)。