django web app部署gunicorn + aws ECS问题

时间:2017-09-13 17:55:28

标签: django amazon-ecs

我使用以下依赖项工作django REST API docker镜像:

  

python 3.5.2,django 1.10.6,djangorestframework 3.6.2,gevent 1.2.2

在我的dockerfile中,端口5000被暴露。

docker命令:

/usr/local/bin/gunicorn --log-level=DEBUG --worker-class gevent --timeout=300 config.wsgi -w 4 -b :5000

在ECS任务定义中,5000个容器端口被转发到主机的端口80。安全组具有允许每个人都在端口80的入站规则。

当我使用此ECS任务定义运行ECS任务时,以下是应用程序日志,看起来很好。

[2017-09-13 16:45:34 +0000] [9] [INFO] Starting gunicorn 19.6.0
[2017-09-13 16:45:34 +0000] [9] [INFO] Listening at: http://0.0.0.0:5000 (9)
[2017-09-13 16:45:34 +0000] [9] [INFO] Using worker: gevent
[2017-09-13 16:45:34 +0000] [12] [INFO] Booting worker with pid: 12
[2017-09-13 16:45:34 +0000] [13] [INFO] Booting worker with pid: 13
[2017-09-13 16:45:35 +0000] [15] [INFO] Booting worker with pid: 15
[2017-09-13 16:45:35 +0000] [16] [INFO] Booting worker with pid: 16

但是我无法使用EC2实例的公共IP /公共DNS地址访问服务端点。

我尝试进入正在运行的容器并卷曲应用程序URL curl localhost:5000。以下是我看到的日志(连接已关闭)

[2017-09-13 17:42:42 +0000] [14] [DEBUG] GET /
[2017-09-13 17:42:42 +0000] [14] [DEBUG] Closing connection.
[2017-09-13 17:42:56 +0000] [12] [DEBUG] GET /
[2017-09-13 17:42:56 +0000] [12] [DEBUG] Closing connection.
[2017-09-13 17:53:20 +0000] [14] [DEBUG] GET /users/get_mfatype/
[2017-09-13 17:53:20 +0000] [14] [DEBUG] Closing connection.

当我在本地运行时,相同的docker镜像正常工作。我甚至尝试在EC2实例中运行相同的docker镜像,这样工作正常。

我无法找到应用程序未作为ECS任务运行的根本原因。

我错过了什么吗?

0 个答案:

没有答案