Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Jhipster、Docker、Gitlab和Heroku构建、测试和部署_Heroku_Docker_Gitlab_Jhipster - Fatal编程技术网

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

如何使用Jhipster、Docker、Gitlab和Heroku构建、测试和部署,heroku,docker,gitlab,jhipster,Heroku,Docker,Gitlab,Jhipster,我对和Docker非常陌生,我想了解如何在Heroku实例上构建和部署我的应用程序的基础知识。由于我和一位朋友一起工作,我们可能需要某种集成平台,比如Gitlab,它也可以作为我们的代码版本控制和存储库 以下是我们迄今为止所做的工作: 生成一个单片应用程序并在本地进行测试(工作正常,感谢Jhipster使其变得如此简单) 在我们的gitlab存储库中推送它 在应用程序的根目录下创建了Docker文件夹,并在内部启动了Docker compose 我们认为下一步应该做什么: 按照以下示例使用.g

我对和Docker非常陌生,我想了解如何在Heroku实例上构建和部署我的应用程序的基础知识。由于我和一位朋友一起工作,我们可能需要某种集成平台,比如Gitlab,它也可以作为我们的代码版本控制和存储库

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

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

    • 按照以下示例使用.gitlab-ci.yml文件配置生成
    • 以某种方式将我们的Heroku云服务器链接到GitLab
    但我还有一些问题:

    • 我们应该把构建docker映像的任务留给gitlab吗
    • 我经常听说Docker hub和Docker Cloud,但我仍然不明白我的观点,我错了吗
    • 我不知道如何充分利用heroku的潜力。对这部分有什么建议吗
    总之,我想从我的应用程序中创建一个Docker映像,构建它并将其发送到我的服务器。我考虑使用Docker、Gitlab和Heroku,但我热衷于任何其他能够帮助我们实现快速、健壮和高效开发周期的方案


    谢谢,

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

    首先,是的,GitLab应该负责构建图像。这些可以存储在中(最新的GitLab版本中提供),也可以存储在中。这两个都是私人docker注册表!无论你选择哪一个,你都会得到一个指南,指导你如何登录到该注册表,并将其推送到该注册表

    我在工作中使用GitLab注册表。我将GitLab CI Runner配置为使用图像“xetys/java-8-docker”运行。请注意,为了能够在内部运行docker,必须运行runner。使用此命令启动运行程序

    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
    
    然后,您可以在脚本之前的
    部分的gitlab CI中安装heroku,以定义“heroku部署”任务和“docker推送”任务

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

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


    希望我能帮上忙。

    大卫,很抱歉回复晚了。非常感谢,你的解释很清楚,很有帮助。由于时间有点短,我们仍在手动进行大部分部署,但我将尝试按照您的示例配置我的GitLab CI Runner,可能会返回给您。您好。如何准确地将创建的容器部署到heroku?你能看看这个问题吗?