Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
Docker 代码部署问题(运行时提取代码)_Docker_Github_Deployment_Git Clone - Fatal编程技术网

Docker 代码部署问题(运行时提取代码)

Docker 代码部署问题(运行时提取代码),docker,github,deployment,git-clone,Docker,Github,Deployment,Git Clone,我有一个关于代码部署的问题 我的团队曾经制作过一个Docker镜像,用于共享多个应用程序。 例如,Docker映像只对多个应用程序具有依赖关系,当我从该映像运行容器时,我会从Github“git克隆”我想要部署的代码 我一直认为使用Docker是不合适的。所以我问了一下,听说是的,这不是使用Docker的好方法。在这之前,谷歌一直在谈论“运行时提取代码”。但当我在谷歌上搜索时,却没有足够的结果 由于我的团队过去常常通过“git clone”部署许多应用程序,即使在不使用Docker的情况下也是如

我有一个关于代码部署的问题

我的团队曾经制作过一个Docker镜像,用于共享多个应用程序。 例如,Docker映像只对多个应用程序具有依赖关系,当我从该映像运行容器时,我会从Github“git克隆”我想要部署的代码

我一直认为使用Docker是不合适的。所以我问了一下,听说是的,这不是使用Docker的好方法。在这之前,谷歌一直在谈论“运行时提取代码”。但当我在谷歌上搜索时,却没有足够的结果

由于我的团队过去常常通过“git clone”部署许多应用程序,即使在不使用Docker的情况下也是如此,所以我很想知道为什么在运行时不好的时候拉代码


为什么在运行时不好的情况下提取代码?

想象一下,每当您想询问或回答堆栈溢出问题时,您都需要下载Chrome的源代码并从源代码处重新编译。这显然需要很长时间;有时网络或远程服务器出现故障,下载源失败;它实际上不是Chrome,它是你的私有分支,所以你需要在每次运行它时重新输入你的GitHub密码,或者将密码保存在某个地方。如果不这样做,只需编译应用程序一次,然后运行编译后的二进制文件

Docker是这样的:映像是一个自包含的对象,它包含应用程序、其语言运行时及其所有依赖项。您只需docker运行它,它就会启动,而无需提取代码或联系远程服务器

这样做的缺点是,无论何时更改代码,都需要重新生成映像。无论是通过C++或C++、java、GO、RISE、JavaScript,通过Type Script或Webpack,这都是一个非常普通的例程,而这是一个逐步集成自动化构建系统可以非常简单的步骤。典型的做法是在每次提交到源代码系统时构建一个新映像,并且只部署构建的自包含映像

还值得注意的是,Docker是一项相对较新的技术,不需要使用它。如果您的工作流基于使用Ansible或Chef之类的工具将语言运行时部署到生产系统,使用不需要构建步骤的解释语言Python、Ruby、纯Javascript,并直接从源代码控制系统中提取源代码,那么如果可行,您完全可以继续使用它