如何使用Jhipster,Docker,Gitlab和Heroku构建,测试和部署

时间:2016-08-18 06:55:17

标签: heroku docker gitlab jhipster

我是Jhipster和Docker的新手,我想了解如何在我的Heroku实例上构建和部署应用程序的基础知识。当我和朋友一起工作时,我们可能需要某种集成平台,例如Gitlab,它也可以作为我们的代码版本和存储库。

以下是我们迄今为止所做的工作:

  1. 生成一个单片应用程序并在本地进行测试(工作正常,感谢Jhipster使其变得如此简单)。
  2. 将它推送到我们的gitlab存储库。
  3. 在我们的应用程序的根目录下创建了一个Docker文件夹,并在其中启动了 docker compose
  4. 我们认为接下来我们应该做什么:

    但我还有一些问题:

    • 我们是否应该将建立docker镜像的任务留给gitlab?
    • 我听说Docker中心和Docker Cloud很多但我仍然没有看到我的情况,我错了吗?
    • 我不确定如何充分利用heroku。关于这部分的任何建议吗?

    总而言之,我想从我的应用程序创建一个Docker镜像,构建它并将其发送到我的服务器。我考虑使用Docker,Gitlab和Heroku,但我热衷于任何其他可以帮助我们实现快速,强大和高效开发周期的命题。

    谢谢,

1 个答案:

答案 0 :(得分:2)

以下是不同的方法......至少重要的是你的发布管道是由CI触发的,而不是手动触发。

首先,是的,GitLab应该负责构建图像。这些可以存储在GitLab Container registry(可在最新的GitLab版本中使用)或heroku container registy中。两者都是私人码头登记处!无论您选择哪一个,您都将获得如何登录该注册表的指南。

我在工作中使用GitLab注册表。我将GitLab CI Runner配置为使用image" 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部分的gitlab CI中安装heroku,以便定义一个" heroku deploy"任务,以及"码头推送"任务。

最后,您可以使用" when:on_success"使您的部署阶段依赖于最近阶段的成功,以便根据您的图像触发部署。

还有一种方法可以让你的CI挂钩到heroku,制作一个由heroku维护的可视部署管道。我从来没有这样做过,所以我无法就此提出任何有意义的建议。

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

相关问题