It seems that a Python 2.7
application in OpenShift requires an app.py
file in the top level directory of the associated repo.
My application structure, however, is like this:
wsgi
- application (which solely contains from mybottleapp import application
)
- mybottleapp.py
When I look at the logs
for one of the pods
, it shows this error:
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.
Can I set that instead of looking for app.py
in the top level directory, it instead looks for /wsgi/application
?
These are the relevant areas from the documentation:
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
But when I try the following to view available variables:
oc env pod/username-1-gx3h8 --list
I get:
# pods username-1-gx3h8, container username
I also tried:
oc env pod/username-1-gx3h8 APP_FILE=/wsgi/application
And got:
error: Pod "username-1-gx3h8" is invalid: spec: Forbidden: pod updates may not change fields other than `containers[*].image` or `spec.activeDeadlineSeconds`
This seems to have worked, but I don't know if it was the correct way to do it:
oc env dc/username APP_FILE=wsgi/application
deploymentconfig "username" updated
dc
stands for deploymentconfig
and the name of the deploymentconfig
was shown at the top of the Pods
>> username-1-gx3h8
screen.