2015-05-06 16 views
1

我試圖將python3應用程序推送到Bluemix,但得到錯誤消息「缺少啓動命令」。我試圖在Python中添加-c「python appname.py」,正如Python中的一樣,而在Linux中則添加-c「python3 appname.py」,但這兩種都不適用於我。任何人都可以給我正確的啓動命令來使用?Python啓動命令應該在Bluemix中看起來如何?

回答

3

您可以在名爲Procfile的文件中定義啓動命令。在您推送到Bluemix的應用程序代碼的根目錄中創建Procfile。該Procfile的內容應該是這樣的:

web: python3 appname.py

其中appname.py是nameof你的Python腳本運行

2

Bluemix中的Python buildpack默認爲python-2.7.9。您需要明確告訴Cloud Foundry您正在使用不同版本的Python。爲此,請將名爲runtime.txt的文件添加到應用的根文件夾中。這個文件的內容應該僅僅是你要使用,像下面的Python版本:

python-3.4.3 

這裏看到更多的信息:https://www.ng.bluemix.net/docs/starters/python/index.html#pythonversions

你不需要添加的啓動命令選項你的推送命令。但是,您的應用程序的根文件夾中應該有一個Procfile,該文件夾包含此啓動命令。它應該如下所示:

web: python appname.py 

其中appname.py是您的服務器init文件。

+0

Thnx,爲您的答覆傑克。我按照你的建議做了,並在其中添加了一個包含python-3.4.1的runtime.txt。我可以在cf cli trace中看到它安裝了3.4.1,但後來它以下面的msg崩潰: >「CRASHED」,「exit_status」=> - 1,「exit_description」=>「缺少啓動命令」,「 cr這就是爲什麼我懷疑當我推送我的應用程序時需要使用-c選項 sh_timestamp「=> 1430987236} –

+0

@UlfEdholm你想在你的Procfile中設置啓動命令。對不起,我應該清楚,沒有必要將啓動命令設置爲您的推送選項。將更新回答 –

4

當你推一個應用Bluemix你有設置幾個選項你的開始命令;您可以使用cf push命令使用-c,您可以將詳細信息放入Procfile中,也可以在清單中放入命令行:

有些文檔在這裏:https://docs.cloudfoundry.org/devguide/deploy-apps/app-startup.html

我發現最簡單的就是把它放在manifest.yml與我的實例配置的其餘一起。

以下示例創建兩個使用相同代碼綁定到共享postgres數據庫和cloudamqp服務的Python應用程序。第一個是Django的前端,第二啓動背景芹菜工人:

--- 
disk_quota: 1024M 
domain: eu-gb.mybluemix.net 
instances: 1 
timeout: 120 
memory: 256M 
services: 
- CloudAMQP-dev 
- PostgreSQL-dev 
applications: 
- name: djangofrontend 
    host: djangofrontend 
    command: gunicorn myapp.wsgi 
- name: workerbackend 
    host: workerbackend 
    no-route: true 
    command: python manage.py celery worker -A myapp -l debug 

我只花了半天找出一些這方面的語法,所以我希望有人離了我發現這個有用的未來。

+0

嗨。我偶然發現了這個答案,這是我遇到的同樣的問題。我是這樣的新手,但是如何讓celery命令與manage.py一起工作? – Jome

+0

@Jome我在[Github](https://github.com/Chaffleson/blupy)上有一個演示應用程序,如果你喜歡,你可以看一個有效的例子 - 這是一個Bluemix可部署的應用程序,它使用芹菜和很少有其他的東西可以在平臺上顯示通用功能。 基本上你有兩個具有相同代碼的應用程序;第一個是用'gunicorn'命令啓動來運行你的前端;第二個是用'python manage.py celery worker -A myapp -l debug'啓動來運行芹菜後端。 – Chaffelson

相關問題