如何在 OpenShift Next Gen Developer Preview 中定义 app.py 的位置?

How to define location of app.py in OpenShift Next Gen Developer Preview?

似乎 OpenShift 中的 Python 2.7 应用程序需要相关存储库的顶级目录中的 app.py 文件。

然而,我的应用程序结构是这样的:

wsgi
- 应用程序(仅包含 from mybottleapp import application
- mybottleapp.py

当我查看 pods 之一的 logs 时,它显示此错误:

WARNING: file 'app.py' not found.
ERROR: don't know how to run your application.
Please set either APP_MODULE or APP_FILE environment variables, or create a file 'app.py' to launch your application.

我可以设置它而不是在顶级目录中查找 app.py,而是查找 /wsgi/application 吗?

这些是文档中的相关领域:

https://docs.openshift.com/online/dev_guide/environment_variables.html#set-environment-variables

https://docs.openshift.com/online/dev_guide/environment_variables.html#list-environment-variables

但是当我尝试以下操作查看可用变量时:

oc env pod/username-1-gx3h8 --list

我得到:

# pods username-1-gx3h8, container username

我也试过:

oc env pod/username-1-gx3h8 APP_FILE=/wsgi/application

得到:

error: Pod "username-1-gx3h8" is invalid: spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds`

这似乎奏效了,但我不知道这样做是否正确:

oc env dc/username APP_FILE=wsgi/application  
deploymentconfig "username" updated  

dc 代表 deploymentconfig 并且 deploymentconfig 的名称显示在 Pods >> username-1-gx3h8 屏幕的顶部。

我正是出于这个目的修改了示例 Bottle 应用程序,但它是内置的,只是还没有很好的记录。

https://github.com/jfmatth/v3simplebottle.git

您需要更改文件 .s2i/environment.

python-s2i 文档中有说明,但不是很清楚。

HTH