Я пытаюсь автоматизировать создание изображения Docker через поставщика докеров в бродяжнике.Ошибка синхронизации синхронизированной папки с поставщиком Docker на Vagrant
Мой каталог выглядит следующим образом:
Dockerfile external .vagrant Vagrantfile
Соответствующие части моего Dockerfile выглядеть следующим образом:
FROM ubuntu:14.04
MAINTAINER Austin Lopez <[email protected]>
...
RUN sudo mv /tmp/external/{my_file}.tar .
RUN sudo tar xvf {my_file}.tar
Мои Vagrantfile выглядит следующим образом:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.synced_folder "./external", "/tmp/external"
config.ssh.insert_key = false
config.vm.provider "docker" do |d|
d.build_dir = "."
d.force_host_vm = true
end
end
Когда я бегу 'vagrant up --provider = docker' Я вижу следующие строки:
==>default: Syncing folders to the host VM...
default: Rsyncing folder: ./external => /var/lib/docker/docker_143...
В моем файле Docker я пытаюсь получить доступ к синхронизированным файлам в/TMP/внешнем каталоге, и я получаю следующее сообщение об ошибке:
cannot stat 'tmp/external/{my_file}': no such file or directory.
Как синхронизировать папки с помощью поставщику Докера? Я думаю, что Dockerfile запускается до создания файла Docker, но я не уверен. Я также рассматривал Docker Volumes как потенциальное решение, но я думаю, что это для установки папок из VM, а не из главной машины.
У вас есть rsync на главной машине? – ydaetskcoR
У меня есть rsync и успешно синхронизированы папки, когда вы не используете поставщика докеров. Кроме того, ошибка возникает во время сборки автоматической докеры, которую я запускаю с помощью команды «vagrant up --provider = docker». –
О, он не может построить изображение докера, потому что ему нужно что-то в синхронизированной папке? Я думаю, синхронизированная папка доступна только для контейнера докера, как только она будет построена, если я ничего не пропустил. В этом случае ссылка в вашем файле Docker должна ссылаться на './External /' вместо '/ tmp/external /' – ydaetskcoR