"rsync" 未检测到安装在您的来宾计算机中
"rsync" was not detected as installed in your guest machine
我正在尝试使用 docker 设置 Vagrant 作为提供者,但是当 运行
vagrant up --provider=docker --debug
我收到这个错误:
"rsync" was not detected as installed in your guest machine. This
is required for rsync synced folders to work. In addition to this,
Vagrant doesn't know how to automatically install rsync for your
machine, so you must do this manually.
完整日志在这里:
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
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
注:
我在 Mac OS X 10.12 上安装了 vagrant、virtualbox 和 docker 我安装了 rsync 并添加到我的 PATH 中主机。
此外,相同的 vagrant 和 docker 配置在 ubuntu 主机上完美运行。
如何在客户机上安装 rsync?还是我的配置有其他问题?有什么想法吗?
尝试将 rsync
添加到您的 Docker 文件中,在您的 apt-get
行之一的某处。 Linux 主机默认使用 NFS,这就是它在您的 Ubuntu 上运行的原因。
通常 Vagrant 会尝试在访客计算机上安装 rsync
,如果失败 - 它会通过错误消息通知您。有关 vagrant website 的更多信息("Prerequisites" 章中的第 3 段)
您可能想试试 替代 boot2docker 盒子:https://github.com/dduportal/boot2docker-vagrant-box
因为它 包含 rsync 而默认使用的 hashicorp/boot2docker 似乎没有这个!
如果这样做,您必须将 follwong 行添加到您的 docker 提供程序配置(当然采用您的系统):
d.vagrant_vagrantfile = "../path/to/Vagrantfile"
这是因为您要按照 vagrant docker provider documentation 中所述更改 docker 提供商主机虚拟机。
我正在尝试使用 docker 设置 Vagrant 作为提供者,但是当 运行
vagrant up --provider=docker --debug
我收到这个错误:
"rsync" was not detected as installed in your guest machine. This is required for rsync synced folders to work. In addition to this, Vagrant doesn't know how to automatically install rsync for your machine, so you must do this manually.
完整日志在这里: 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
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
注: 我在 Mac OS X 10.12 上安装了 vagrant、virtualbox 和 docker 我安装了 rsync 并添加到我的 PATH 中主机。 此外,相同的 vagrant 和 docker 配置在 ubuntu 主机上完美运行。
如何在客户机上安装 rsync?还是我的配置有其他问题?有什么想法吗?
尝试将 rsync
添加到您的 Docker 文件中,在您的 apt-get
行之一的某处。 Linux 主机默认使用 NFS,这就是它在您的 Ubuntu 上运行的原因。
通常 Vagrant 会尝试在访客计算机上安装 rsync
,如果失败 - 它会通过错误消息通知您。有关 vagrant website 的更多信息("Prerequisites" 章中的第 3 段)
您可能想试试 替代 boot2docker 盒子:https://github.com/dduportal/boot2docker-vagrant-box 因为它 包含 rsync 而默认使用的 hashicorp/boot2docker 似乎没有这个!
如果这样做,您必须将 follwong 行添加到您的 docker 提供程序配置(当然采用您的系统):
d.vagrant_vagrantfile = "../path/to/Vagrantfile"
这是因为您要按照 vagrant docker provider documentation 中所述更改 docker 提供商主机虚拟机。