如何使用Jhipster,Docker,Gitlab和Heroku来构build,testing和部署
我对Jhipster和Docker非常陌生 ,希望能够帮助您理解如何在我的Heroku实例上构build和部署应用程序的基础知识。 正如我正在和朋友一起工作的时候,我们可能需要某种集成平台,比如Gitlab,它也可以作为我们的代码版本和存储库。
以下是我们迄今所做的:
- 生成一个单一的应用程序,并在本地进行testing(工作正常,谢谢Jhipster使它变得如此简单)。
- 把它推到我们的gitlab存储库上。
- 在我们的应用程序的根目录创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议。
希望我能以某种方式提供帮助。