Docker &引用;rsync“;未检测到已安装在来宾计算机中

Docker &引用;rsync“;未检测到已安装在来宾计算机中,docker,vagrant,boot2docker,vagrantfile,Docker,Vagrant,Boot2docker,Vagrantfile,我试图设置流浪者与docker作为一个供应商,但当运行 vagrant up --provider=docker --debug 我得到这个错误: 未检测到来宾计算机中安装了“rsync”。这 是rsync同步文件夹工作所必需的。除此之外,, Vagrant不知道如何为您的应用程序自动安装rsync 机器,所以您必须手动执行此操作 完整日志在此: 流浪汉档案 require 'yaml' Vagrant.configure("2") do |config| user_config

我试图设置流浪者与docker作为一个供应商,但当运行

vagrant up --provider=docker --debug 
我得到这个错误:

未检测到来宾计算机中安装了“rsync”。这 是rsync同步文件夹工作所必需的。除此之外,, Vagrant不知道如何为您的应用程序自动安装rsync 机器,所以您必须手动执行此操作

完整日志在此:

流浪汉档案

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 
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
Dockerfile

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 
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
来自debian:jessie MAINTAINER IT
运行echo“退出0”>/usr/sbin/policy rc.d
运行echo“debconf debconf/frontend select Noninteractive”| debconf set selections
运行apt获取更新运行apt获取升级-y运行apt获取安装sudo apt utils-y
运行apt get-y install sysvinit core sysvinit sysvinit utils运行cp/usr/share/sysvinit/inittab/etc/inittab运行apt get remove-y--purge
--自动删除systemd libpam systemd systemd sysv
运行apt-get安装ssh-y
运行addgroup--system it运行adduser--system--disabled password
--uid 1000--shell/bin/bash--home/home/it运行adduser it运行adduser it sudo
运行echo“it ALL=(ALL)NOPASSWD:ALL”>>/etc/sudoers
添加初始的\u ssh\u key.pub/home/it/.ssh/authorized\u key RUN chown it:it/home/it/-R RUN echo“Host*\n\tStrictHostKeyChecking no”>>/etc/ssh/ssh\u config
CMD exec/sbin/init
注意: 我在Mac OS X 10.12上安装了vagrant、virtualbox和docker,我在主机上安装了rsync并将其添加到我的路径中。 同样,同样的vagrant和docker配置也可以在ubuntu主机上完美运行


如何在来宾计算机中安装rsync?还是我的配置有其他问题?有什么想法吗?

尝试将
rsync
添加到Docker文件中,在
apt get
行的某个地方。Linux主机默认使用NFS,这就是它在Ubuntu上工作的原因


通常,Vagrant会尝试在来宾计算机上安装
rsync
,如果失败,它会通知您错误消息。更多信息(在“先决条件”一章的第3段)

您可能想尝试一下备用引导存储框: 因为它包含rsync,而默认使用的hashicorp/boot2docker似乎缺少rsync

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

d.vagrant\u vagrantfile=“../path/to/vagrantfile”


这是因为您正在更改docker提供程序主机vm,如中所述。

我已经尝试过,但似乎不起作用:在dockerfile中添加了
运行apt get install rsync-y
,出现相同的错误消息。vagrant/vbox有问题:/It's not
vbox
-您正在使用
docker
作为提供程序:
config.vm.provider“docker”
知道它为什么会失败吗?我在rsync错误消息之前的日志中看到了这一点:[default]主机(5.0.16)和来宾(4.3.28 r100309)上的来宾条件版本不匹配。来宾平台(“linux”)当前不受支持,将尝试通用linux方法。。。将iso文件/Applications/VirtualBox.app/Contents/MacOS/vboxguestaditions.iso复制到/tmp/vboxguestaditions.iso安装VirtualBox Guest Additions 5.0.16-Guest版本为4.3.28 r100309 mkdir:无法创建目录“/tmp/selfgz10164313”:没有此类文件或目录我看不到您在docker上公开任何端口,尝试公开
873
rsync
d一起使用的任何内容。公开=[873]
仍会显示相同的错误消息