使用Vagrant托管PostgreSQL数据库时,如何找到同步文件夹?

时间:2016-12-20 14:31:03

标签: python postgresql vagrant virtual-machine vagrantfile

根据the PostgreSQL wiki,我将预装了PostgreSQL的a vagrant file克隆到我的硬盘上。

我现在正在尝试将它与我编写的.py和.sql文件结合使用。 Vagrant文​​档表明,一旦我完成cd/vagrant,我就能vagrant up直接进入名为vagrant ssh的文件夹,但每当我尝试这样做时,我都会以下错误消息:

-bash: cd: /vagrant: No such file or directory

我假设它是我Vagrantfile内的东西。 Vagrant文​​档说这种行为应该默认发生,但我在额外的行中添加了:

config.vm.synced_folder ".", "/vagrant"

但那没有做任何事。

所以我想知道如何访问我的/vagrant共享/同步文件夹。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

来自https://github.com/jackdb/pg-app-dev-vm的Vagrantfile看起来有点陈旧,但仍然有版本1语法 -

您可以在版本2语法部分中添加缺少的文件夹,因此Vagrantfile就像

一样
# -*- mode: ruby -*-
# vi: set ft=ruby :

$script = <<SCRIPT
echo I am provisioning...
date > /etc/vagrant_provisioned_at
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
  config.vm.synced_folder  ".", "/vagrant"
end

Vagrant::Config.run do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.box_url = "https://atlas.hashicorp.com/ubuntu/boxes/trusty64"
  config.vm.host_name = "postgresql" 

  config.vm.share_folder "bootstrap", "/mnt/bootstrap", ".", :create => true
  config.vm.provision :shell, :path => "Vagrant-setup/bootstrap.sh"

  # PostgreSQL Server port forwarding
  config.vm.forward_port 5432, 15432
end

最好是使用version2语法(syntax1已经过时几年了) - 以下内容将起作用

# -*- mode: ruby -*-
# vi: set ft=ruby :

$script = <<SCRIPT
echo I am provisioning...
date > /etc/vagrant_provisioned_at
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script

  config.vm.box = "ubuntu/trusty64"
  config.vm.box_url = "https://atlas.hashicorp.com/ubuntu/boxes/trusty64"
  config.vm.host_name = "postgresql" 

  config.vm.synced_folder  ".", "/mnt/bootstrap"

  config.vm.provision :shell, :path => "Vagrant-setup/bootstrap.sh"

  # PostgreSQL Server port forwarding
  config.vm.network "forwarded_port", guest: 5432, host: 15432
end

使用此功能,您无需在默认情况下在此处指定/vagrant共享文件夹