在Vagrant

时间:2015-05-12 18:52:16

标签: docker vagrant vagrantfile

我正试图通过vagrant中的docker提供程序自动构建Docker镜像。

我的目录如下所示:

Dockerfile external .vagrant Vagrantfile

我的Dockerfile的相关部分如下所示:

FROM ubuntu:14.04
MAINTAINER Austin Lopez <austinhlopez@gmail.com>

...

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

当我跑来跑去时--provider = docker&#39;我看到以下几行:

==>default: Syncing folders to the host VM...
   default: Rsyncing folder: ./external => /var/lib/docker/docker_143...

在我的docker文件中,我尝试访问/ tmp / external目录中的同步文件,我收到以下错误:

cannot stat 'tmp/external/{my_file}': no such file or directory.

如何使用Docker Provider同步文件夹?我认为在构建Dockerfile之前正在运行Dockerfile,但我不确定。我也将Docker Volumes视为一种潜在的解决方案,但我认为这是从VM内部而不是从主机上安装文件夹的。

1 个答案:

答案 0 :(得分:0)

构建映像后,同步文件夹可供Docker容器使用。

在此之前,Vagrant只是像往常一样从Dockerfile构建你的Docker镜像,所以你的Dockerfile中的引用应该引用主机,而不是试图引用共享文件夹作为容器的演示者。