【发布时间】:2022-01-21 22:09:56
【问题描述】:
我在 Azure 容器实例上使用 Flask 和 Gunicorn 部署了 Flask Web 应用程序,其中包含以下文件
app.py
from flask import Flask, Response, jsonify, request
from .errors import errors
app = Flask(__name__)
app.register_blueprint(errors)
@app.route("/", methods=["GET"])
def index():
return Response("Hello, world!", status=200)
wsgi.py
from api import app
if __name__ == "__main__":
app.run(host="0.0.0.0", port=443)
运行.sh
gunicorn wsgi:app --bind 0.0.0.0:443 --log-level=info --workers=3 --reload --timeout 120
Dockerfile
FROM python:3.7.8-slim as build
COPY requirements/common.txt requirements/common.txt
RUN apt-get update && apt-get install -y build-essential
RUN apt-get install -y cmake
RUN pip install -U pip && pip install -r requirements/common.txt
COPY ./api /app/api
COPY ./bin /app/bin
COPY wsgi.py /app/wsgi.py
WORKDIR /app
EXPOSE 443
ENTRYPOINT ["bash", "/app/bin/run.sh"]
这在使用普通的 http 请求时效果很好。但是,我需要使用 https,因为我将发送敏感信息。
我被指导使用 certbot,但我不知道如何将它与我拥有的东西集成,并且我将把它部署到 ACI
如何解决这个问题?
【问题讨论】:
-
您需要部署一个边车容器或使用负载均衡器。 docs.microsoft.com/en-us/azure/container-instances/… 和 itnext.io/…
-
您好@amro_ghoneim,如果我的回答对您有帮助,您可以点赞并接受它作为答案(点击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢
-
您好@amro_ghonei,如果我的回答对您有帮助,您可以投票并接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢
标签: python docker flask azure-container-instances