У меня есть Vagrant 1.6.5 и Docker версии 1.3.2.
Если я использую либо провайдера Docker, либо поставщика, я не могу переопределить CMD своим собственным.
Пример конфигурации провайдера, который я пробовал:
config.vm.provider :docker do |d|
d.image = 'ubuntu'
d.remains_running = true
d.has_ssh = false
d.ports = ["8080:8080"]
d.volumes = ["/tmp/:/tmp"]
d.cmd = ["ping", "-c 50", "127.0.0.1"]
end
Пример конфигурации поставщика, который я пробовал:
config.vm.provision "docker" do |d|
d.run "ubuntu",
args: '-v /tmp:/tmp -p 2222:22',
cmd: "/bin/sh -c 'ping -c 10 127.0.0.1; touch /tmp/hello_world'"
end
Это Dockerfile, который официальный реестр Ubuntu Docker использует для сборки:
Когда я запускаю vagrant, контейнер докеров всегда существует немедленно, а вывод docker ps -a
всегда просто показывает, что команда соответствует той, которая указана в Dockerfile ubuntu.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb6922063bfe ubuntu:14.04 "/bin/bash" 12 minutes ago Exited (0) 6 seconds ago root_default_1417660734
Я что-то упускаю? Думаю, я должен иметь возможность использовать образ Ubuntu и переопределять параметры CMD своими собственными для запуска произвольных команд?
спасибо фло