2016-11-27 66 views
1

持續集成我有一個Gitlab服務器上的碼頭工人容器中運行:gitlab dockerGitlab上泊塢

在Gitlab存在與運行pdflatex建立PFD文件的簡單的Makefile的項目。

在泊塢容器我裝的texlive而作,我也裝泊塢窗亞軍,命令:

curl -sSL https://get.docker.com/ | sh 

的.gitlab-ci.yml看起來如下:

.build: 
    script: &build_script 
    - make 

build: 
    stage: test 
    tags: 
    - Documentation Build 
    script: *build 

工作是卡住運行,並顯示一條消息:

This build is stuck, because the project doesn't have any runners online assigned to it 

有什麼想法嗎?

+0

建議在Docker外部運行您的GITLAB RUNNER,並讓Docker下載並啓動Docker容器。這聽起來像你試圖自己建立亞軍?您是否按照文檔中的說明進行操作? https://docs.gitlab.com/runner/#using-gitlab-runner –

+0

GITLAB CI RUNNER!= GITLAB SERVER。你的意思是說你在Docker中運行主Gitlab服務器,還是CI運行器在Docker中運行?或者你沒有意識到服務器不包含任何跑步者,你需要設置一個跑步者? –

+0

顯然不是!我在包含Gitlab的Docker容器外部運行curl命令,所以我在主機上執行了它。我現在正在閱讀設置系統是非常複雜的,因爲我想要的,Jenkings會更容易... – mattobob

回答

1

你的鏈接上的熱門評論是對現貨:

「 Gitlab是好的,但這個容器是絕對瘋狂」

其次看gitlab's own advice你應該不能在窗戶上使用這個容器,永遠

如果你想從Gitlab服務器使用Gitlab-CI,你實際上應該在一個適當的支持Linux VM上安裝一個合適的Gitlab服務器實例,並且不應該試圖使用這個容器來達到它的目的顯然不適合:真正的生產方式來運行Gitlab。

Gitlab-綜合包括:

  1. 持久(不是無狀態的!)數據層搭載的Postgres。

  2. 一個已存在的聊天服務器將成爲您的團隊聊天的持續記錄。

  3. 不是一個,而是一系列服務器進程,它們共同爲您提供gitlab服務器功能和Web管理/管理前端,這在設計上似乎並不理想,因爲我在docker的生產環境中運行該設計。

  4. 一個集成的CI構建管理器,本身就是一個Docker容器管理器。您的碼頭實例將包含其他碼頭實例的緩存。

那這個容器是將Gitlab本身內置任何跡象表明你真正應該使用它不是作爲一個測試/玩具或什麼Gitlab自己真正使用它,這可能是其他什麼讓人旋轉起來Gitlab每晚都可以通過kubernetes進行構建。

+0

好男人很酷謝謝,但我不在窗戶上,旁邊那個對我來說工作很好,我喜歡使用碼頭工人容器他們的多功能性是美好的我可以在同一臺機器上運行多個不同目的的服務器 – mattobob

+0

Git服務器的目的是包含你的代碼,而不是丟失它。 Docker的重點是輕鬆建立和拆卸東西。持久性不是Docker的強項。爲什麼不將硬盤備份到Docker容器?看到我的觀點? –

1

我想你在這裏有點困惑。通過此評論來看:

在我的texlive安裝,使泊塢容器,我也裝 泊塢窗亞軍,命令:

捲曲-ssl https://get.docker.com/ | sh

看來你已經在Docker中安裝了docker,並沒有實際安裝任何跑步者?如果是這樣的話,這將不起作用。得到這個運行的步驟如下:

  • 部署一個新的gitlab運行器。最快的方法是使用gitlab運行器docker image部署另一個碼頭集裝箱。你不能在你部署gitlab的docker容器中運行runner。你需要確保你選擇了一個執行器(我建議你使用shell執行器來啓動),然後你需要註冊runner。有關於如何執行此操作的更多信息here。這裏沒有詳細說明的是,如果您使用docker for gitlab和docker for gitlab-runner,則需要link the containers或設置一個docker network,以便它們可以相互通信
  • 一旦部署並用gitlab註冊跑步者,你會發現它出現在http(s):// your-gitlab-server/admin/runners中 - 從這裏你需要將它分配給一個項目。您也可以將其作爲「共享」跑步者,它將執行所有項目的作業。
  • 最後,添加已有的.gitlab-ci.yml,並且構建將按預期工作。
+0

這可能是一個很好的答案。這可能是解決這個問題的方法。但是我認爲,除了作爲測試系統之外,不要以這種方式運行Gitlab會更好。 –

+0

同意。雖然我不喜歡在Docker中運行任何重要的東西,但是我保持了它的政治性:) – jaxxstorm