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

How to build, test and deploy using Jhipster, Docker, Gitlab and Heroku

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

这是我们目前所做的:

  1. 生成了一个整体应用程序并在本地对其进行了测试(工作正常,感谢 Jhipster 使它变得如此简单)。
  2. 将其推送到我们的 gitlab 存储库。
  3. 在我们的应用程序的根目录下创建了一个 Docker 文件夹并在里面启动了 docker compose

我们认为接下来应该做的事情:

但我还有一些疑问:

总而言之,我想从我的应用程序创建一个 Docker 图像,构建它并将它发送到我的服务器。我考虑使用 Docker、Gitlab 和 Heroku,但我热衷于任何其他有助于我们拥有快速、稳健和高效开发周期的建议。

谢谢,

这里有不同的方法...至少重要的是您的发布管道是由 CI 触发的,而不是手动触发的。

一开始,是的,GitLab应该负责构建镜像。这些可以存储在 GitLab Container registry (which is avaible in the latest GitLab versions) or the heroku container registy 里面。两者都是私人 docker 注册中心!无论您选择哪一个,您都会获得如何登录到该注册表以推送到该注册表的指南。

我在工作中使用 GitLab 注册表。我使用图像 "xetys/java-8-docker" 将 GitLab CI Runner 配置为 运行。注意,运行ner 必须 运行 才能在 运行 docker 里面。使用此命令启动 运行ner

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" 任务和一个 "docker push" 任务。

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

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

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