未检测到"rsync"已安装在来宾计算机中

Wis*_*sem 10 vagrant docker vagrantfile boot2docker

我正在尝试使用docker作为提供者设置Vagrant但是在运行时

vagrant up --provider=docker --debug 
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

未检测到"rsync"已安装在来宾计算机中.这是rsync同步文件夹工作所必需的.除此之外,Vagrant不知道如何为您的机器自动安装rsync,因此您必须手动执行此操作.

完整登录:http: //pastebin.com/zCTSqibM

Vagrantfile

require 'yaml'

Vagrant.configure("2") do |config|

  user_config = YAML.load_file 'user_config.yml'

  config.vm.provider "docker" do |d|
    d.build_dir = "."
    d.has_ssh = true
    d.ports = user_config['port_mapping']
    d.create_args = ["--dns=127.0.0.1","--dns=8.8.8.8", "--dns=8.8.4.4"]
    d.build_args = ['--no-cache=true']   end

  config.vm.hostname = "dev"

  config.ssh.username = "it"   config.ssh.port = 22   config.ssh.private_key_path = ["./initial_ssh_key", user_config['ssh_private_key_path']]   config.ssh.forward_agent = true

end 
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM debian:jessie MAINTAINER IT <it@email.com>

RUN echo 'exit 0' > /usr/sbin/policy-rc.d

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

RUN apt-get update RUN apt-get upgrade -y RUN apt-get install sudo apt-utils -y

RUN apt-get -y install sysvinit-core sysvinit sysvinit-utils RUN cp /usr/share/sysvinit/inittab /etc/inittab RUN apt-get remove -y --purge
--auto-remove systemd libpam-systemd systemd-sysv

RUN apt-get install ssh -y

RUN addgroup --system it RUN adduser --system --disabled-password
--uid 1000 --shell /bin/bash --home /home/it it RUN adduser it it RUN adduser it sudo

RUN echo "it ALL=(ALL)  NOPASSWD: ALL" >> /etc/sudoers

ADD initial_ssh_key.pub /home/it/.ssh/authorized_keys RUN chown it:it /home/it/ -R RUN echo "Host * \n\tStrictHostKeyChecking no" >> /etc/ssh/ssh_config

CMD exec /sbin/init
Run Code Online (Sandbox Code Playgroud)

注意: 我在Mac OS X 10.12上安装了vagrant,virtualbox和docker我安装了rsync并将其添加到主机中的PATH中.此外,相同的vagrant和docker配置在ubuntu主机上完美运行.

如何在来宾计算机中安装rsync?或者我的配置有什么问题?有任何想法吗?

l00*_*0tr 2

您可能想尝试一下替代的 boot2docker 框https://github.com/dduportal/boot2docker-vagrant-box ,因为它包含 rsync,而默认使用的 hashcorp/boot2docker 似乎缺少这个!

如果这样做,您必须将以下行添加到您的 docker 提供程序配置中(当然采用到您的系统中):

d.vagrant_vagrantfile = "../path/to/Vagrantfile"

这是因为您正在更改 docker 提供程序主机虚拟机,如vagrant docker 提供程序文档中所述。