了解码头工人原则

时间:2019-06-13 01:35:20

标签: docker web-deployment

我做了一个非常简单的golang服务器,需要将其部署到Digitalocean Droplet中。

我知道在使用cgo的情况下交叉构建go应用程序可能会出现问题,因此为了以后不再考虑,我决定使用docker,因此我的应用程序将始终在相同的环境中构建和运行。

我没有得到的第一件事就是开发应用程序。创建Dockerfile时,我使用命令将项目目录中的文件添加到新创建的Docker映像中。然后,我运行从该映像创建的容器。但是,如果我编辑代码怎么办? -据我了解,我必须停止容器,移除图片,然后重新构建。对于这种常见情况,这有点棘手-还是我做错了事?

第二个-我在DO上创建了一个docker drop:部署我的应用程序的方式是什么?

  • 我必须将映像推送到任何docker存储库并将其拉到小滴上?
  • 或者我可以直接上传?
  • 还是我必须将源代码压缩为drop并运行与本地计算机上相同的过程,构建映像,然后运行容器?

1 个答案:

答案 0 :(得分:1)

  

但是,如果我编辑代码怎么办? -据我了解,我必须停止容器,移除图片,然后重新构建。对于这种常见情况,这有点棘手-还是我做错了事?

不要删除图像,而只是重建它。这将比第一个初始构建快得多。还有为什么棘手?这只是一两个命令,如果烦人,您可以创建一个bash或.bat脚本。

  

我在一个DO上创建了一个docker drop:如何部署我的应用?

所有三个选项都是可能的。对于第二个,您将必须将您的虚拟机设置为docker-hub存储库,这可能超出您的需求。使用docker hub还不错。您也可以在服务器上构建映像。我建议您使用docker hub,因为它很容易,并在服务器上设置了守望台,以在新的图像推送上重新启动Web应用。

编辑:以上建议适用于VM,而不适用于Docker Drop。我对DO并不熟悉,但是本文应该会有所帮助:

https://blog.machinebox.io/deploy-machine-box-in-digital-ocean-385265fbeafd