Я пытаюсь автоматизировать создание образа 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...
В моем файле докера я пытаюсь получить доступ к синхронизированному файлу в каталоге /tmp/external и получаю следующую ошибку:
cannot stat 'tmp/external/{my_file}': no such file or directory.
Как синхронизировать папки с помощью Docker Provider? Я думаю, что Dockerfile запускается до создания Dockerfile, но я не уверен. Я также рассмотрел Docker Volumes как потенциальное решение, но я думаю, что это для монтирования папок внутри виртуальной машины, а не с хост-машины.
./external/
вместо/tmp/external/
. - person ydaetskcoR   schedule 12.05.2015