将代码推送到远程Docker

我有一个GitLab存储库,我有一个node.js应用程序与快速,我想要“部署”此代码到我的Ubuntu服务器远程使用快速服务器,不仅本地,但我不想安装node.js我想尝试使用Docker。 我已经读了很多关于Docker的知识,而且我已经理解了基本的东西。 我的问题是,如果我在我的Ubuntu服务器上安装Docker,当我推入我的资源库时,如何在Docker上“部署”我的代码?

基本上,你必须分两步进行。 一个是dockerizing您的应用程序,这意味着为您的存储库创build一个Docker镜像。 第二步是让你的服务器使用这个映像,可能会自动执行推进过程。 所以我会做这样的事情:

  1. Dockerize您的应用程序。 这意味着有一个Dockerfile ,在这里你创build一个包含你的应用程序的图像,运行它,并可能导出一个端口来使用它的外部。
  2. 在你的服务器上运行镜像。 您的服务器将需要安装docker ,并且能够获得正确的映像(稍后会详细介绍)。 如果只使用一个图像,则可以使用简单的docker run命令。 如果涉及更多的部分,如数据库或networking服务器,我会推荐使用docker-compose 。
  3. 使图像在您的服务器上可用。 你在这里有多个选项。 您可以将您的图像发布到Docker存储库(私有或公共),或者您可以直接在您的服务器上下载存储库,然后在那里构build图像。
  4. 最后,你需要绑定这些步骤。 为此,您需要一个能够对提交作出反应的钩子 ,您可以在该服务器上向服务器发送命令以获取/构build映像,然后运行较新的版本。

实际上,你如何做到这一点有很大的灵活性。 我将从一个更简单的过程开始,在这个过程中,您可以在服务器上构build映像,并根据您的需要在其上构build映像。

Dokku是一个基于Docker的PaaS平台,提供git push部署。 它支持Heroku构build包来构build运行你的应用程序或自定义的Dockerfile部署 。