2016-08-01 129 views
3

我試圖運行一個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

據我所知,腳本試圖從主機運行此命令機器,我如何讓流浪漢在流浪機上啓動腳本?

回答

5

你有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

如果要在機器啓動時啓動應用程序,可以這樣做:

  1. 移動你的python app code directory到Vagrantfile目錄

  2. 配置的Vagrantfile這樣的:

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