2016-08-18 118 views
2

我對Jhipster和Docker非常新,我希望能夠幫助您理解如何在我的Heroku實例上構建和部署應用程序的基礎知識。當我與一位朋友合作時,我們可能需要某種集成平臺,例如Gitlab,它也可以作爲我們的代碼版本和存儲庫。如何使用Jhipster,Docker,Gitlab和Heroku構建,測試和部署

下面是我們迄今所做的:

  1. 產生單片應用和測試在本地(正常工作,謝謝Jhipster製作起來很簡單)。
  2. 將它推到我們的gitlab存儲庫上。
  3. 在我們的應用程序的根目錄創建一個Docker文件夾,並在裏面啓動docker compose

我們認爲,我們應該做的未來:

但我仍然有一些問題:

  • 我們應該離開建築物泊塢窗圖像gitlab的任務嗎?
  • 我聽說Docker hub和Docker Cloud很多,但我仍然沒有看到我的觀點,我錯了嗎?
  • 我不確定如何充分利用heroku。有關這部分的任何建議?

所以總結一下,我想從我的應用程序創建一個Docker鏡像,將其構建併發送到我的服務器。我考慮使用Docker,Gitlab和Heroku,但我熱衷於其他任何可以幫助我們實現快速,強大且高效的開發週期的主張。

謝謝

回答

2

這裏有不同的方法去......至少它很重要,你的發佈管道由CI不是手工觸發,和。

首先,是的,GitLab應該負責構建圖像。這些可以存儲在GitLab Container registry(可在最新的GitLab版本中獲得)或heroku container registy中。兩者都是私人碼頭註冊機構!無論你選擇哪一個,你都會得到一個指導如何登錄到註冊表來推動這一點。

我在工作中使用GitLab註冊表。我將GitLab CI Runner配置爲使用映像「xetys/java-8-docker」運行。請注意,跑步者必須跑步才能在裏面運行docker。使用此命令

docker run -d --name gitlab-runner --restart always \ 
    -v /var/run/docker.sock:/var/run/docker.sock \ 
    -v /srv/gitlab-runner/config:/etc/gitlab-runner \ 
    gitlab/gitlab-runner:latest 

然後你就可以在before_script部分安裝的Heroku gitlab CI內,以定義一個「Heroku的部署」任務啓動亞軍,而「泊塢窗推送」的任務。

最後,您可以使用「when:on_success」使您的部署階段依賴於最近階段的成功,從而根據您的圖像觸發部署。

還有一種方法可以讓你的CI掛鉤到heroku,製作一個由heroku維護的可視化部署管道。我從來沒有這樣做過,所以我不能就此提出任何有意義的建議。

希望我能以某種方式提供幫助。

+0

對不起,最近回覆大衛。非常感謝,你的解釋非常明確和有幫助。由於我們的時間有點短,我們仍然在手動部署大部分工作,但我會嘗試按照您的示例配置我的GitLab CI Runner,並且可能會回覆您。 –

+0

你好。你如何精確地將創建的容器部署到heroku?你可以看看這個問題嗎? http://stackoverflow.com/questions/42611622/deploy-docker-container-from-external-registry-to-heroku –