Docker 为外部开发人员设置测试环境

Docker 为外部开发人员设置测试环境,docker,continuous-integration,automated-tests,sandbox,Docker,Continuous Integration,Automated Tests,Sandbox,上下文:为外部程序开发人员设置文本环境,以便以后集成到自己的平台中 我想知道用于测试的沙盒和开发服务器之间的主要区别是什么 假设您的应用程序使用java、jsp、html、css、js、mysql,但您也使用外部开发人员使用这些相同的语言和db进行开发,这些语言和db稍后将集成到与当前现有其他应用程序相同的平台上 所以问题是,沙盒主要用于将应用程序与环境的其余部分分离,所以如果项目在文件系统上有文件,沙盒需要将文件系统、数据库分离。sandbox和dev服务器可能会有允许外部开发人员访问它的文件

上下文:为外部程序开发人员设置文本环境,以便以后集成到自己的平台中

我想知道用于测试的沙盒和开发服务器之间的主要区别是什么

假设您的应用程序使用java、jsp、html、css、js、mysql,但您也使用外部开发人员使用这些相同的语言和db进行开发,这些语言和db稍后将集成到与当前现有其他应用程序相同的平台上

所以问题是,沙盒主要用于将应用程序与环境的其余部分分离,所以如果项目在文件系统上有文件,沙盒需要将文件系统、数据库分离。sandbox和dev服务器可能会有允许外部开发人员访问它的文件系统。那么这是否给我们留下了docker选项?但如果说整个应用程序都是在docker上完成的,那么它可以链接到live server吗

还有CI/CD管道呢?如果选择了可用的选项,我们如何进行测试? 你认为哪个选项最合适?

怎么样

对于独立的开发环境来说,这是一个非常好的工具。共享存储可以用于您需要的一切—数据库、文件系统。每台机器的本地网络是分开的。所有环境配置都在一个文件()中进行,因此为新开发人员设置它只是:

mkdir dev2 && cd dev2 && cp dev1/Vagrantfile . && vagrant up 
当然,您可以使用诸如Ansible或Puppet之类的CM工具来安装诸如webserver、DB server之类的软件,并进行诸如create users、dirs之类的操作系统更改。保持所有开发人员环境处于相同状态是一种简单的方法。如果开发人员出现意外错误,例如破坏某些配置或
rm-rf/home/*
,只需重新创建一台机器,只需几分钟。 关于CI/CD测试,我喜欢简单的解决方案。詹金斯管道

checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: repoWithTests]], branches: [[name: 'master']]], poll: false
sh(script: "python tests.py", returnStdout: true)
Fie
tests.py
这是带有unittest.TestCase的简单脚本,用于检查enpoints、grep日志以及它可能需要的任何东西

总之,在我看来,模拟真实机器比模拟docker更好。Docker最适合单独应用,而不是整个机器