如何使用Jhipster,Docker,Gitlab和Heroku来构build,testing和部署

我对Jhipster和Docker非常陌生 ,希望能够帮助您理解如何在我的Heroku实例上构build和部署应用程序的基础知识。 正如我正在和朋友一起工作的时候,我们可能需要某种集成平台,比如Gitlab,它也可以作为我们的代码版本和存储库。

以下是我们迄今所做的:

  1. 生成一个单一的应用程序,并在本地进行testing(工作正常,谢谢Jhipster使它变得如此简单)。
  2. 把它推到我们的gitlab存储库上。
  3. 在我们的应用程序的根目录创build一个Docker文件夹,并启动Docker docker compose

我们认为我们应该做的下一步:

  • 使用以下示例中的.gitlab-ci.yml文件configuration构buildhttp://docs.gitlab.com/ce/ci/yaml/README.html
  • 以某种方式将我们的Heroku云服务器链接到GitLab。

但是我仍然有一些问题:

  • 我们应该把构builddocker镜像的任务留给gitlab吗?
  • 我听说Docker hub和Docker Cloud很多,但我仍然没有看到我的观点,我错了吗?
  • 我不知道如何充分利用heroku。 有关这部分的任何build议?

总结一下,我想从我的应用程序创build一个Docker镜像,将其构build并发送到我的服务器。 我想使用Docker,Gitlab和Heroku,但是我热衷于其他任何可以帮助我们实现快速,强大和高效的开发周期的主张。

谢谢,

这里有不同的方法去…至less重要的是你的发布pipe道是由CI触发的,而不是手动的。

首先,是的,GitLab应该负责构build图像。 这些可以存储在GitLab容器registry (可以在最新的GitLab版本中)或者heroku容器registry中 。 两个都是私人dockerregistry! 无论你select哪一个,你都会得到一个指导如何login到registry来推动。

我在工作中使用GitLabregistry。 我将GitLab CI Runnerconfiguration为使用映像“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 deploy”任务和一个“docker push”任务。

最后,您可以使用“when:on_success”使您的部署阶段依赖于最近阶段的成功,从而根据您的映像触发部署。

还有一种方法可以让你的CI挂钩到heroku,做一个由heroku维护的可视化部署pipe道。 我从来没有这样做,所以我不能就此提出任何有意义的build议。

希望我能以某种方式提供帮助。