在流浪资源配置阶段运行文件的路径是什么?
在Vagrantfile中,为了将文件放在正确的目录中,我有一个运行shell脚本的config.vm.provision
(例如:`path:&#34; .provision / setup.sh&#39;)。< / p>
setup.sh
文件从同一文件夹中的另一个文件读取,以运行将在客户端计算机上放置文件的git repos列表。
该脚本在Vagrant之外进行了良好的测试,但我很难找到我应该说它所在的位置。以下是导致问题的代码示例:
filename='./provision/gitrepos'
exec 4<$filename
echo Start
while read -u4 p ; do
if [ ! -z "$p" ];
then
is_website $p
else
echo
echo "This line '#$p' is blank"
echo
fi
done
此处出现问题:filename='./provision/gitrepos'
在执行vagrant up
时,文件不再被视为在主机上,而是在其他地方。但是,如何找到与setup.sh文件位于同一目录中的文件的位置?
我试过`filename =&#39; ./ gitrepos&#39;但似乎相对路径似乎不起作用。
如何找到这些文件夹和文件的位置,以便我可以在配置阶段访问它们?
答案 0 :(得分:0)
配置脚本是从/tmp
文件夹执行的 - 如果你进入你的虚拟机并检查临时文件夹,你会看到vagrant-shell
这样的内容与你的脚本内容。但是,并非目录中的所有文件都被推送到/tmp
文件夹。
如果你的gitrepos文件在你的项目目录中,那么它默认在/vagrant
目录下共享,所以你可以从那里读取
如果不是您需要创建特定的sync_folder,那么您可以从VM中读取该文件