使用 Vagrant 托管 PostgreSQL 数据库时如何找到同步文件夹?
How do I find my synced folder when using Vagrant to host a PostgreSQL database?
根据 the PostgreSQL wiki, I cloned a vagrant file 将 PostgreSQL 预加载到我的硬盘上。
我现在正尝试将它与我一直在编写的 .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
shared/synced 文件夹。你能帮忙吗?
来自 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
共享文件夹,默认情况下您会在此处阅读
根据 the PostgreSQL wiki, I cloned a vagrant file 将 PostgreSQL 预加载到我的硬盘上。
我现在正尝试将它与我一直在编写的 .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
shared/synced 文件夹。你能帮忙吗?
来自 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
共享文件夹,默认情况下您会在此处阅读