2016-08-18 120 views
2

我对Jhipster和Docker非常新,我希望能够帮助您理解如何在我的Heroku实例上构建和部署应用程序的基础知识。当我与一位朋友合作时,我们可能需要某种集成平台,例如Gitlab,它也可以作为我们的代码版本和存储库。如何使用Jhipster,Docker,Gitlab和Heroku构建,测试和部署

下面是我们迄今所做的:

  1. 产生单片应用和测试在本地(正常工作,谢谢Jhipster制作起来很简单)。
  2. 将它推到我们的gitlab存储库上。
  3. 在我们的应用程序的根目录创建一个Docker文件夹,并在里面启动docker compose

我们认为,我们应该做的未来:

但我仍然有一些问题:

  • 我们应该离开建筑物泊坞窗图像gitlab的任务吗?
  • 我听说Docker hub和Docker Cloud很多,但我仍然没有看到我的观点,我错了吗?
  • 我不确定如何充分利用heroku。有关这部分的任何建议?

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

谢谢

回答

2

这里有不同的方法去......至少它很重要,你的发布管道由CI不是手工触发,和。

首先,是的,GitLab应该负责构建图像。这些可以存储在GitLab Container registry(可在最新的GitLab版本中获得)或heroku container registy中。两者都是私人码头注册机构!无论你选择哪一个,你都会得到一个指导如何登录到注册表来推动这一点。

我在工作中使用GitLab注册表。我将GitLab CI Runner配置为使用映像“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的部署”任务启动亚军,而“泊坞窗推送”的任务。

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

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

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

+0

对不起,最近回复大卫。非常感谢,你的解释非常明确和有帮助。由于我们的时间有点短,我们仍然在手动部署大部分工作,但我会尝试按照您的示例配置我的GitLab CI Runner,并且可能会回复您。 –

+0

你好。你如何精确地将创建的容器部署到heroku?你可以看看这个问题吗? http://stackoverflow.com/questions/42611622/deploy-docker-container-from-external-registry-to-heroku –