如何将一个端口从 Elastic Beanstalk 映射到我的 Flask 应用程序的 Docker 容器?
Posted
技术标签:
【中文标题】如何将一个端口从 Elastic Beanstalk 映射到我的 Flask 应用程序的 Docker 容器?【英文标题】:How can I map a port from Elastic Beanstalk to my Docker container for my Flask app? 【发布时间】:2020-10-29 01:42:03 【问题描述】:我的Dockerfile
看起来像:
FROM ubuntu:18.04
RUN apt-get -y update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get update -y
RUN apt-get install -y python3.7 build-essential python3-pip
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
ENV FLASK_APP application.py
COPY . /app
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt
EXPOSE 5000
ENTRYPOINT python3 -m flask run --host=0.0.0.0
所以我的应用程序在端口 5000 上运行。当我尝试部署到 ElasticBeanstalk 时,如何指定它应该转发到端口 5000?
在我的 ELB 中,我有:
我已经看到了一些使用 Dockerfile.aws.json
的答案,但我认为我不需要它,因为我不会发布我的 Docker 映像。对吗?
在我的应用程序日志中,我看到:
* Serving Flask app "application.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
【问题讨论】:
【参考方案1】:使用Dockerrun.aws.json v1设置端口。
如果您有自己的Dockerfile
,则Image
选项是可选。
Ports
选项:
列出要在 Docker 容器上公开的端口。 Elastic Beanstalk 使用 ContainerPort 值将 Docker 容器连接到主机上运行的反向代理。
【讨论】:
以上是关于如何将一个端口从 Elastic Beanstalk 映射到我的 Flask 应用程序的 Docker 容器?的主要内容,如果未能解决你的问题,请参考以下文章
将 Docker 部署到 AWS Elastic Beanstalk——如何将端口转发到主机? (端口绑定)
如何让Elastic Beanstalk nginx支持的代理服务器从HTTP自动重定向到HTTPS?
如何将 mongoDB Docker 映像部署到 Elastic Beanstalk?
Elastic Beanstalk - PHP / 强制 HTTPS