我是一个完整的networking开发者。 作为我工作的一部分,有时我需要pipe理开发和生产服务器。
我想保持生产和开发服务器在包和configuration中尽可能相同。
所以基本上,我想有我的需要时,旧的服务器的确切副本。
我不想使用磁盘映像,因为我无法在云提供者之间传输磁盘映像。 (有时我需要它)
为了实现我的需要,我正在使用安装特定版本的软件包的shell脚本。 例:
aptitude install -y apache2=2.4.18-2ubuntu3.1 aptitude install -y libapache2-mod-ruid2=0.9.8-3 ... and so on
所以我想知道
以你写的方式回答你的问题是由@kormoc给出的。 但是你用docker标记了它,虽然你的问题直接不涉及docker,但是我会给docker的方法来解决这个问题:
你想要的是从开发到生产具有相同的环境,而不是具有相同的包,这只是解决问题的一种方式。
Docker允许你打包你的应用程序,尽pipe你的服务器上安装了什么,你需要运行的所有东西。
你在你的Dockerfile中写下你需要的每个包:
FROM ubuntu:trusty RUN aptitude install -y apache2=2.4.18-2ubuntu3.1 RUN aptitude install -y libapache2-mod-ruid2=0.9.8-3
… 等等
然后你从它创build一个图像,并在你想要的服务器上运行这个图像。 唯一的要求是安装docker。
问候