2017-08-29 115 views
0

我试图从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 
+0

如果你运行oc获取路由,你会得到什么?什么OpenShift实例是这个在线免费层实例之一?如果是,哪个实例,us-east1,us-west-1还是其他? –

+0

免费入门美国西部(加州)实例。我添加一些控制台输出到问题的编辑。 – ashchuk

+1

尝试将''ip ='localhost'''更改为''ip ='0.0.0.0'''。它可能只在localhost上监听,并且不会接受来自外部的连接。 –

回答

1

刚刚更改ip = 'localhost'ip = '0.0.0.0'作为Graham said,这工作。

这里是一个explanation

如果使用localhost或127.0.0.1只会接受来自网络环回设备的请求。这只能由运行在同一主机(容器)上的客户端连接。您需要监听所有网络接口(由0.0.0.0表示)以便能够接受来自主机(容器)外部的请求。如果你不这样做,OpenShift无法连接到你的应用程序来代理它的请求。