将代码推送到远程Docker

时间:2017-09-02 22:08:36

标签: node.js git docker gitlab

我有一个GitLab存储库,其中我有一个带有express的node.js应用程序,我希望将此代码“部署”到我的Ubuntu Server以远程使用快速服务器,而不仅仅是本地,但我不想安装节点.js而不是我想尝试使用Docker。 我已经阅读了很多关于Docker的内容,而且我已经理解了基本的东西。我的问题是,如果我在我的Ubuntu服务器上安装Docker,当我推入我的存储库时如何在Docker上“部署”我的代码?

2 个答案:

答案 0 :(得分:2)

基本上,您必须分两步完成整个过程。一个是将您的应用程序停靠,这意味着为您的存储库创建一个Docker镜像。第二步是让您的服务器使用此映像,可能会在推送时自动执行该过程。所以我会做这样的事情:

  1. Dockerize您的应用。这意味着拥有Dockerfile,您可以在其中创建包含应用程序的图像,运行它并可能导出端口以在外部使用它。
  2. 在您的服务器中运行该图像。您的服务器需要安装docker,并且能够获得正确的图像(稍后会详细介绍)。如果只使用一个图像,则只需使用简单的docker run命令即可​​。如果涉及更多部分,例如数据库或网络服务器,我建议使用docker-compose
  3. 使您的服务器上的图像可用。这里有多个选项。您可以将您的映像publish发送到docker存储库(私有或公共),或者您只需在服务器中下载存储库,然后在那里构建映像。
  4. 最后,您需要绑定这些步骤。为此,您需要hook对服务器的提交作出反应,您可以在其中向服务器发送命令以获取/构建映像,并运行较新的版本。
  5. 实际上,你在如何做到这一点上有很大的灵活性。我将从一个更简单的过程开始,在您的服务器上构建映像,并根据您的需要构建它。

答案 1 :(得分:0)

Dokku是基于Docker的PaaS平台,提供 git push 部署。它支持Heroku buildpacks来构建运行您的应用程序或自定义Dockerfile deployments