我试图从Openshift2到Openshift3迁移我的旋风式的应用程序配置Openshift 3,不知道如何实际设定的路线,服务等不能与龙卷风服务器
首先,我创建简单的Python 3.5应用程序在RHEL 7中。在高级选项中,我设置了git repo,添加了APP_FILE
变量。成功完成克隆和应用程序构建。而我在网络控制台终端执行curl localhost:8080
,它似乎工作。
但服务根链接返回此消息:
应用程序当前没有放送此端点请求
应用程序不可用。它可能尚未启动或仍在启动。
我实际上没有改变路由和服务配置中的任何东西,我想我应该设置它。但现在没有任何想法如何做到这一点。
这里是我的wsgi.py
:
#!/usr/bin/env python
import importlib.machinery
if __name__ == '__main__':
print('Executing __main__ ...')
ip = 'localhost'
port = 8080
app = importlib.machinery.SourceFileLoader("application", 'wsgi/application').load_module("application")
from wsgiref.simple_server import make_server
httpd = make_server(ip, port, app.application)
print('Starting server on http://{0}:{1}'.format(ip, port))
httpd.serve_forever()
而且application
:
#!/usr/bin/env python
import os
import sys
import tornado.wsgi
from wsgi.openshift import handlers
if 'OPENSHIFT_REPO_DIR' in os.environ:
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi',))
virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/venv'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python3.3/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
exec(compile(open(virtualenv).read(), virtualenv, 'exec'), dict(__file__=virtualenv))
except IOError:
pass
settings = {
'cookie_secret': 'TOP_SECRET',
'static_path' : os.path.join(os.getcwd(), 'wsgi/static'),
'template_path' : os.path.join(os.getcwd(), 'wsgi/templates'),
'xsrf_cookies': False,
'debug': True,
'login_url': '/login',
}
application = tornado.wsgi.WSGIApplication(handlers, **settings)
编辑:
下面是一些控制台oc
输出:
> oc status
In project photoservice on server https://api.starter-us-west-1.openshift.com:443
http://photoservice-photoservice.a3c1.starter-us-west-1.openshiftapps.com to pod port 8080-tcp (svc/photoservice)
dc/photoservice deploys istag/photoservice:latest <-
bc/photoservice source builds [email protected]:ashchuk/photoservice.git#master on openshift/python:3.5
deployment #1 deployed 3 minutes ago - 1 pod
View details with 'oc describe <resource>/<name>' or list everything with 'oc get all'.
> oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
photoservice photoservice-photoservice.a3c1.starter-us-west-1.openshiftapps.com photoservice 8080-tcp None
如果你运行oc获取路由,你会得到什么?什么OpenShift实例是这个在线免费层实例之一?如果是,哪个实例,us-east1,us-west-1还是其他? –
免费入门美国西部(加州)实例。我添加一些控制台输出到问题的编辑。 – ashchuk
尝试将''ip ='localhost'''更改为''ip ='0.0.0.0'''。它可能只在localhost上监听,并且不会接受来自外部的连接。 –