Я пытаюсь построить контейнер докеров на лету в бродячем vm. Файлы Vagrantfile и Dockerfile, из которых должен быть создан контейнер, находятся в одном каталоге, а на виртуальной машине они находятся в стандартной синхронизированной папке/бродяге, как и ожидалось. К сожалению, создание контейнера не работает - я получаю The Dockerfile (Dockerfile) must be within the build context
. Каков надлежащий контекст сборки в этом случае? Нужно ли мне когда-нибудь копировать файл Dockerfile, чтобы использовать его?Провиденциальная машина: Dockerfile (Dockerfile) должен находиться в контексте сборки
Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.provider "virtualbox"
config.vm.box = "ubuntu/trusty64"
config.vm.hostname = "ubuntu"
config.vm.network :private_network, ip: "192.168.0.200"
config.ssh.forward_agent = true
config.ssh.insert_key = false
config.vm.provision "docker" do |d|
d.build_image "/vagrant/Dockerfile"
d.build_args = ['--tag "container"']
d.run "container"
end
end
Выход:
$ vagrant provision
==> default: Running provisioner: docker...
==> default: Building Docker images...
==> default: -- Path: /vagrant/Dockerfile
==> default: stdin: is not a tty
==> default: The Dockerfile (Dockerfile) must be within the build context (/vagrant/Dockerfile)
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
docker build /vagrant/Dockerfile
Stdout from the command:
Stderr from the command:
stdin: is not a tty
The Dockerfile (Dockerfile) must be within the build context (/vagrant/Dockerfile)
Является 'd.build_image "/ vagrant/Dockerfile" 'действительный вариант? Вы пробовали «d.build_dir»/vagrant «'? – SteveChapman
Необязательно, указывая 'd.dockerfile x', если файл docker не называется« Dockerfile » – SteveChapman
build_dir и файл docker недопустимы, в соответствии с' VagrantPlugins :: DockerProvisioner :: Config: * Следующие параметры не должны существовать: build_dir' – nflacco