簡體   English   中英

帶有 GitLab、docker 和 docker 私有注冊表的 CD

[英]CD with GitLab, docker and docker private registry

我們需要自動化部署過程。 讓我指出我們使用的堆棧。 我們有自己的 GitLab CE 實例和私有 docker 注冊表。 在生產服務器上,應用程序在容器中運行。 每次主提交后,GitLab CI 構建包含代碼的映像,將其發送到 docker 注冊表,這就是自動化結束的地方。

在生產服務器上的部署可以通過幾個步驟來執行 - 停止當前的應用程序容器,拉出新的並運行它。

自動化此過程的最佳方法是什么?

我閱讀了一些解決方案(但我相信還有更多)

  • docker 私有注冊表 ping 到自己執行所有上述步驟的生產服務器(生產機器上的腳本由例如主管或類似的東西管理)
  • 使用 docker machine 遠程管理運行容器

什么是首選方式? 或者你可以推薦其他東西?

無需使用 swarm、kubernetes 等工具。這是一個非常簡單的應用程序。 提前致謝。

在你的生產機器上安裝 Gitlab-ci runner 怎么樣? 並在推送到名為deploy master 上的注冊表后執行一項工作,並使用 Gitlab CI 標簽deploy其固定到該機器上。

該作業只是從注冊表中提取映像並重新啟動您的服務或任何您現有的東西。

類似的東西:

deploy-job:
  stage: deploy
  tags:
    - production
  script:
    - docker login myprivateregistry.com -u $SECRET_USER -p $SECRET_PASS
    - docker pull $CI_REGISTRY_IMAGE:latest
    - docker-compose down
    - docker-compose up -d

我能想到四種解決方案

  1. 在生產服務器上使用瞭望塔https://github.com/v2tec/watchtower
  2. 運行一個 webhook 服務器,這是你的 CI 在將圖像推送到注冊表后請求的。 https://github.com/adnanh/webhook
  3. 如前所述,也可以在生產環境中運行 CI,這最終會觸發您的更新命令。
  4. 啟用 docker api 並通過從 CI 請求來更新容器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM