使用docker运行Dash-plotly应用导致结果错误

时间:2019-09-16 12:13:38

标签: python-3.x docker flask amazon-ec2 plotly-dash

在将docker与dash一起使用时遇到问题。 首先:如文档所述,docker安装示例应用程序对我来说非常有效。here

第二:我想要的是将docker用于破旧不堪的应用程序,然后将其部署在aws-beanstack上 所以我按照这些步骤 在此链接a link上!

请注意,我是Docker的初学者,请原谅任何初学者的错误。我也尝试了许多解决方案,但我不知道问题出在哪里 这是我的application.py:

from flask import Flask
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html

server = Flask('main', static_url_path='')

app = dash.Dash(name='main', sharing=True, server=server, url_base_pathname='/main/')
app.layout = html.Div([
    dcc.RadioItems(
        id='ri-1',
        options=[
            {'label': 'A', 'value': 'a'},
            {'label': 'B', 'value': 'b'},
            {'label': 'C', 'value': 'c'}
        ]
    ),
    html.P(),
    html.Div([], className='row', id='ri-val')
])


@server.route('/')
def index():
    return 'another Flask app'


@app.callback(
    Output('ri-val', 'children'),
    [Input('ri-1', 'value')]
)
def ri_cb(ri):
    print ri
    return str(ri)


if __name__ == '__main__':
    server.run(port=8050, host='0.0.0.0', debug=True)

这是Dockerfile:

FROM amazon/aws-eb-python:3.4.2-onbuild-3.5.1

这是requirements.txt:

Click==7.0
dash==0.21.1
dash-core-components==0.22.1
dash-html-components==0.10.1
dash-renderer==0.12.1
Flask==0.12.2
Flask-Compress==1.4.0
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
plotly==4.1.1
retrying==1.3.3
six==1.12.0
Werkzeug==0.15.6

然后我用它来运行:

amr@amrlinux:~/dash-example$ sudo docker run -it --rm -p 3000:8050 dash-example

结果是这样的:

*** Starting uWSGI 2.0.8 (64bit) on [Fri Sep 13 14:01:49 2019] ***
compiled with version: 4.9.1 on 04 November 2014 00:03:50
os: Linux-4.18.0-25-generic #26-Ubuntu SMP Mon Jun 24 09:32:08 UTC 2019
nodename: 000000000
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /var/app
detected binary path: /var/app/bin/uwsgi
setgid() to 1000
setuid() to 1000

,当我尝试浏览http://localhost:3000时,它表明the page is not working 请注意,当我在本地主机:8080上运行文件application.py时,它在本地主机上成功运行,不适用于docker。我不知道问题出在哪里。

系统信息: Linux ubuntu 18.1

0 个答案:

没有答案