我有以下Vagrantfile
:奇怪的流浪误差泊坞窗和外壳供应方
VAGRANTFILE_API_VERSION = "2"
$script = <<SCRIPT
apt-get install -y mongodb
mongo dummydb -u admin -p admin --eval "db.addUser('dummyuser', 'dummypass')"
SCRIPT
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64_vmware_fusion.box"
# MongoDB ports
config.vm.network "forwarded_port", guest: 27017, host: 27017
# RabbitMQ ports
config.vm.network "forwarded_port", guest: 5672, host: 5672
config.vm.network "forwarded_port", guest: 55672, host: 55672
config.vm.provision "docker" do |docker|
docker.run "tutum/mongodb", daemonize: true, args: "-p 27017:27017 -e MONGODB_PASS=\"admin\""
docker.run "tutum/rabbitmq", daemonize: true, args: "-p 5672:5672 -p 55672:55672 -e RABBITMQ_PASS=\"admin\""
end
# config.vm.provision "shell", inline: $script
end
当我运行这个使用
$ vagrant up --provider=vmware_fusion
这个完美的作品:创建虚拟机,安装泊坞窗和MongoDB以及RabbitMQ都已设置,并且相应地分配了密码。到目前为止,一切都很好。
当我现在取消注释执行该外壳供应方(其中,根据documentation,应该像这样),我得到一个非常奇怪的错误的最后一行:放浪安装泊坞窗,拉tutum/mongodb
图像,然后告诉我,运行容器失败:
==> default: Starting Docker containers...
==> default: -- Container: tutum/mongodb
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
rm -f /var/lib/vagrant/cids/1bef9ddec8969e37432fbe8c55f6d9452cd61e4a
docker run -cidfile=/var/lib/vagrant/cids/1bef9ddec8969e37432fbe8c55f6d9452cd61e4a -d -name tutum/mongodb -p 27017:27017 -e MONGODB_PASS="admin" tutum/mongodb
Stdout from the command:
Stderr from the command:
stdin: is not a tty
Warning: '-cidfile' is deprecated, it will be replaced by '--cidfile' soon. See usage.
Warning: '-name' is deprecated, it will be replaced by '--name' soon. See usage.
Unable to find image 'tutum/mongodb' locally
Pulling repository tutum/mongodb
2014/03/27 01:31:40 Error: Invalid container name (tutum/mongodb), only [a-zA-Z0-9_.-] are allowed
我想这个问题是参数-name tutum/mongodb
是流浪自动适用于docker run
通话。
我不明白的是为什么会这样只有如果我添加外壳供应方(这显然什么做设置泊坞或码头集装箱)。
有没有人有这个想法?
我在OS X 10.9.2上使用了Vagrant 1.5.1,Vagrant VMWare Fusion provider 2.3.4和VMWare 6.0.2。
有没有人有一个想法可能会导致这个问题,以及如何解决它?
PS:我目前的解决方法是在Vagrantfile
内应用auto_assign_name: false
,但这只是一种解决方法。我很好奇实际问题是什么以及如何正确解决问题。
但是,这不仅是缺少的短跑,它也是缺少的引号,不是吗? –
是的,但它们是可选的。这个想法是,在Docker语法级别有一个弃用需要Vagrant社区的支持。尽管如此,我希望自己达到了Ruby语言的水平,以帮助实现这一目标。 – Mulkave