问题
我正在尝试使用flask_restful在Docker容器中部署带有AWS Elastic Beanstalk的测试API . 我已粘贴下面的示例代码,以便您可以看到实际发生的情况 . 我不理解的奇怪的事情是我的app.py正在运行,但它在端口80而不是端口5000上暴露,这是我在app.py app.run命令和我的指定中都指定的dockerfile . 我还没有在这种环境中运行负载均衡器 . 我确信这在某处清楚地记录了下来 . 但我还没发现它 .
dockerfile:
FROM ubuntu:14.04
# Update packages
RUN apt-get update -y
# Install Python Setuptools
RUN apt-get install -y python-setuptools
# Install pip
RUN easy_install pip
# Add and install Python modules
ADD requirements.txt /src/requirements.txt
RUN cd /src; pip install -r requirements.txt
# Bundle app source
ADD . /src
# Expose
EXPOSE 5000
# Run
CMD ["python", "/src/app.py"]
app.py:
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
workers = [
{
"workerid": "sample1",
"iamid": "Pj9Cm8r&ve85Wm%u"
},
]
class WorkerOnline(Resource):
def get(self, name):
for worker in workers:
if(name == worker["workerid"]):
return "Worker " + name + " Found", 200
return "Worker not associated", 404
api.add_resource(WorkerOnline, "/worker/online/<string:name>")
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)