• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

部署python flaks项目至docker

武飞扬头像
小小鱼er
帮助1

1,项目介绍:

这是一个自动化测试的项目,使用python语言的flask框架,项目结构大致如下:

  1.  
    adautotest--
  2.  
     
  3.  
    --app
  4.  
     
  5.  
    --config
  6.  
     
  7.  
    --logs
  8.  
     
  9.  
    --models
  10.  
     
  11.  
    --service
  12.  
     
  13.  
    --views
  14.  
     
  15.  
    --tests
  16.  
     
  17.  
    manage.py
  18.  
     
  19.  
    Dockerfile
  20.  
     
  21.  
    requirements.txt
学新通

Dockerfile内容如下:

  1.  
    # For more information, please refer to https://aka.ms/vscode-docker-python
  2.  
    FROM python:3.8-slim
  3.  
     
  4.  
    EXPOSE 8083
  5.  
     
  6.  
    # Keeps Python from generating .pyc files in the container
  7.  
    ENV PYTHONDONTWRITEBYTECODE=1
  8.  
    ENV FLASK_ENV=dev
  9.  
     
  10.  
    # Turns off buffering for easier container logging
  11.  
    ENV PYTHONUNBUFFERED=1
  12.  
     
  13.  
    # Install pip requirements
  14.  
    COPY requirements.txt .
  15.  
    RUN python -m pip install -r requirements.txt
  16.  
     
  17.  
    WORKDIR /root
  18.  
    COPY . /root
  19.  
     
  20.  
    # During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
  21.  
    CMD ["python","manage.py","runserver"]
  22.  
     
学新通

manage.py

学新通

 manage.py运行的端口8083应该和Dockerfile中暴露的端口一致。
requirements.txt就是这个项目所有依赖

2,Dockerfile逻辑

编写的Dockerfile逻辑

FROM python:3.8-slim

是指使用什么python版本

EXPOSE 8083

是指暴露出来的端口

ENV FLASK_ENV=dev

是指定义的环境变量

  1.  
    COPY requirements.txt .
  2.  
    RUN python -m pip install -r requirements.txt

把当前目录下的 requirements.txt 进行依赖安装

  1.  
    WORKDIR /root
  2.  
    COPY . /root

WORKDIR /root 相当于在容器中cd root(没有应该会新建) 

COPY . /root 把当前宿主机中当前目录下的都拷贝到容器中的/root下去

CMD ["python","manage.py","runserver"]

运行命令 python manage.py runserver

3, docker打包镜像

把项目文件拷贝到docker机器上,进入项目目录

运行命令:

docker build -t image_name:版本 Dockfile_path

学新通

 学新通

查看镜像

docker  images

学新通

删除镜像

  1.  
    docker rmi 镜像名称:版本
  2.  
     
  3.  
  4.  
     
  5.  
    docker rmi 镜像id

删除镜像前先删除镜像容器

  1.  
    docker ps -a
  2.  
     
  3.  
    docker rm 容器id

4,docker启动容器

docker run -d -p 宿主机端口:容器端口 image_name:版本

 -d是指后台运行

-p是指指定端口     (也可以使用默认端口-P)

学新通

  1.  
    docker ps查看所启动的容器
  2.  
     
  3.  
    docker ps -a 查看所有启动的容器,包括暂停的容器

学新通

进入容器

docker exec -it 容器id /bin/bash

学新通

尝试访问有响应

学新通

注意有个大坑:

学新通

flask host设置为0.0.0.0要是设置为127.0.0.1的话,怎么都会访问不通,还会出现如下curl 错误

 connection reset by peer

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaheig
系列文章
更多 icon
同类精品
更多 icon
继续加载