我正在尝试运行一个 vagranfile,它将导致运行 python flask 应用程序。我试过用这个作为最后一个命令来实现这个 -
config.vm.provision :shell, :path => "python app.py"
但它导致了以下错误 -
*
shell provisioner 的路径在主机系统上不存在:/Users/*****/code/app-vagrant/python app.py
我知道脚本试图从主机运行这个命令,我如何让 Vagrant 在启动的 vagrant 机器上运行脚本?
最佳答案
您有 2 个选项来使用 vagrant shell provisioner 运行脚本您必须传递 inline
或 path
参数:
inline (string) - Specifies a shell command inline to execute on the remote machine.
path (string) - Path to a shell script to upload and execute. It can be a script relative to the project Vagrantfile or a remote script (like a 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 - 在 vagrant up 上运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694311/