我正试图通过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内部而不是从主机上安装文件夹的。
答案 0 :(得分:0)
构建映像后,同步文件夹可供Docker容器使用。
在此之前,Vagrant只是像往常一样从Dockerfile构建你的Docker镜像,所以你的Dockerfile中的引用应该引用主机,而不是试图引用共享文件夹作为容器的演示者。