在vagrant上运行python脚本up

问题描述:

我试图运行一个vagranfile,它会导致运行python flask应用程序。我已经使用这个作为最后一个命令来实现这个尝试 - config.vm.provision :shell, :path => "python app.py" 但它导致出现以下错误 -在vagrant上运行python脚本up

*路径for shell provisioner does not exist on the host system: /Users/*****/code/app-vagrant/python app.py

据我所知,脚本试图从主机运行此命令机器,我如何让流浪汉在流浪机上启动脚本?

你有2个选项来运行使用脚本vagrant shell provisioner你必须通过任一inlinepath说法:

直列(字符串) - 指定一个shell命令内嵌到远程机器上执行。

path(字符串) - 上传和执行shell脚本的路径。它可以是一个相对于项目Vagrantfile或远程脚本的脚本(如主题)。

因此,当您通过:path => "python app.py"时,系统会尝试在您的主机上找到名为python app.py的脚本。

更换使用inline参数,它会实现你想要

config.vm.provision :shell, :inline => "python app.py" 

笔记内容:供应方的运行为root用户在默认情况下,如果你想改变,并运行它vagrant用户:

config.vm.provision :shell, :inline => "python app.py", :privileged => false 

如果要在机器启动时启动应用程序,可以这样做:

  1. 移动你的python app code directory到Vagrantfile目录

  2. 配置的Vagrantfile这样的:

    config.vm.provision "shell", inline: <<-SHELL 
        python /vagrant/<your python app code directory>/app.py 
    SHELL