在vagrant up上运行python脚本
我正在尝试运行一个vagranfile,它将生成一个正在运行的python flask应用程序。我试着用这个作为最后一个命令来实现这个-在vagrant up上运行python脚本,python,vagrant,vagrantfile,Python,Vagrant,Vagrantfile,我正在尝试运行一个vagranfile,它将生成一个正在运行的python flask应用程序。我试着用这个作为最后一个命令来实现这个- config.vm.provision:shell,:path=>“python app.py” 但它导致了以下错误- 主机系统上不存在shell provisioner的路径:/Users/*****/code/app vagrant/python app.py 我知道脚本正试图从主机运行此命令,如何使Vagrant在启动的Vagrant计算机上运行脚本?您
config.vm.provision:shell,:path=>“python app.py”
但它导致了以下错误-
主机系统上不存在shell provisioner的路径:/Users/*****/code/app vagrant/python app.py
我知道脚本正试图从主机运行此命令,如何使Vagrant在启动的Vagrant计算机上运行脚本?您有两个选项可以使用运行脚本,您必须传递
内联
或路径
参数:
内联(字符串)-指定要在远程计算机上内联执行的shell命令
path(string)-要上载和执行的shell脚本的路径。它可以是相对于项目文件的脚本,也可以是远程脚本(如gist)
因此,当您传递:path=>“python app.py”
时,系统会尝试在主机上查找名为python app.py
的脚本
使用inline
参数替换,它将实现您想要的功能
config.vm.provision :shell, :inline => "python app.py"
注意:默认情况下,provisioner以root
用户的身份运行,如果要更改并以vagrant
用户的身份运行:
config.vm.provision :shell, :inline => "python app.py", :privileged => false
如果要在机器启动时启动应用程序,可以执行以下操作:
python应用程序代码目录
移动到文件的目录config.vm.provision "shell", inline: <<-SHELL
python /vagrant/<your python app code directory>/app.py
SHELL
config.vm.provision“shell”,内联: