Flask打包成Docker

将 Flask 项目打包成 Docker 镜像

  1. 创建 Dockerfile:在项目的根目录下创建一个名为 "Dockerfile" 的文件。Dockerfile 是用于定义 Docker 镜像构建步骤的文本文件。
  2. 编写 Dockerfile:在 Dockerfile 中编写以下内容:

    # 第一阶段:构建应用程序
    FROM python:3.9 as builder
    
    WORKDIR /app
    
    # 安装依赖项
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    # 复制应用程序代码
    COPY . .
    
    # 构建应用程序
    #RUN python setup.py install
    
    # 第二阶段:部署应用程序
    FROM python:3.9-slim
    
    WORKDIR /app
    
    # 从第一阶段复制构建好的应用程序
    COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
    COPY --from=builder /app /app
    
    # 设置环境变量
    ENV FLASK_APP=app.py
    
    # 安装运行应用程序所需的依赖项
    RUN pip install flask gunicorn
    
    # 运行应用程序
    CMD ["gunicorn", "--bind", "0.0.0.0:5200", "app:app"]
    
  3. 创建 requirements.txt:在项目的根目录中创建一个名为 "requirements.txt" 的文件,并列出项目所需的所有依赖包及其版本。使用以下命令来生成 requirements.txt 文件:

    pip freeze > requirements.txt
  4. 构建 Docker 镜像:在命令行中切换到项目根目录,并执行以下命令来构建 Docker 镜像:

    docker build -t myimage:latest .
    
  5. 运行 Docker 镜像:构建成功后,你可以运行 Docker 镜像并将应用程序暴露到宿主机上的端口。执行以下命令来运行 Docker 镜像:

    docker run -p 5000:5200 myimage:latest

这将运行 "flask-app" 镜像,并将容器内的端口 5000 映射到宿主机上的端口 5000。

现在,你的 Flask 应用程序已经打包成 Docker 镜像并在容器中运行了。你可以通过访问 http://localhost:5000 来访问应用程序。根据你的需求,你可以进一步配置 Docker 镜像,例如添加环境变量、配置 Nginx 反向代理等。请参考 Docker 和 Flask 的官方文档以获取更详细的信息和指导。

导出镜像

docker save -o myimage.tar myimage:latest
评论区
头像
文章目录