我正在尝试配置多个可从vagrant运行的docker容器,但是公司代理阻止了boot2docker的下载,boot2docker是Vagrant在不支持容器的OS上运行时下载的VM。该错误是SSL验证错误。我的公司代理进行MITM内容检查,因此将HTTPS证书替换为其自己的证书。
我已经设置了http_proxy(etc)环境变量,并尝试了config.vm.box_download_insecure和config.vm.box_download_ca_cert(使用包含代理证书的自定义cacert.pem)。
此配置有效:
Vagrant.configure(2) do |config|
#config.vm.box_download_insecure = "true"
config.vm.box_download_ca_cert = "cacert.pem"
config.vm.box = "hashicorp/precise64"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "2"
end
end
这不是:
Vagrant.configure(2) do |config|
#config.vm.box_download_insecure = "true"
config.vm.box_download_ca_cert = "cacert.pem"
config.vm.provider "docker" do |d|
d.build_dir = "../path/to/docker"
d.has_ssh = true
end
end
是否有人对为什么它不起作用有任何想法?
更新:
弗雷德里克(Frederick)在下面提供了一个合适的解决方法,但它强调我问得太快了。
Vagrant的docker提供程序的功能之一是,当用户调用“vagrant up”时,如果需要(例如在Windows或OSX上运行),它将自动下载boot2docker。因此,有问题的开发人员实际上不需要关心他是否需要代理虚拟机,它就可以工作。
我可以指示Windows上的用户手动安装此框(无论如何,它们都必须安装其他依赖项,例如cygwin),但是如果说明更统一的话,这样做只会更容易。
最佳答案
您是否尝试直接像这样直接添加boot2docker框
vagrant box add --insecure hashicorp/boot2docker
关于proxy - Docker:hashicorp/boot2docker无法在公司代理后面下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488536/