我是Jhipster和Docker的新手,我想了解如何在我的Heroku实例上构建和部署应用程序的基础知识。当我和朋友一起工作时,我们可能需要某种集成平台,例如Gitlab,它也可以作为我们的代码版本和存储库。
以下是我们迄今为止所做的工作:
docker compose
。我们认为接下来我们应该做什么:
但我还有一些问题:
总而言之,我想从我的应用程序创建一个Docker镜像,构建它并将其发送到我的服务器。我考虑使用Docker,Gitlab和Heroku,但我热衷于任何其他可以帮助我们实现快速,强大和高效开发周期的命题。
谢谢,
答案 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维护的可视部署管道。我从来没有这样做过,所以我无法就此提出任何有意义的建议。
希望我能以某种方式提供帮助。