部署python flaks项目至docker

14 篇文章 0 订阅
1 篇文章 0 订阅

1,项目介绍:

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

adautotest--

--app

   --config

   --logs

   --models

   --service

   --views

--tests

manage.py

Dockerfile

requirements.txt

Dockerfile内容如下:

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim

EXPOSE 8083

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
ENV FLASK_ENV=dev

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /root
COPY . /root

# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python","manage.py","runserver"]

manage.py

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

2,Dockerfile逻辑

编写的Dockerfile逻辑

FROM python:3.8-slim

是指使用什么python版本

EXPOSE 8083

是指暴露出来的端口

ENV FLASK_ENV=dev

是指定义的环境变量

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

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

WORKDIR /root
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

删除镜像

docker rmi 镜像名称:版本

或 

docker rmi 镜像id

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

docker ps -a

docker rm 容器id

4,docker启动容器

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

 -d是指后台运行

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

docker ps查看所启动的容器

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

进入容器

docker exec -it 容器id /bin/bash

尝试访问有响应

注意有个大坑:

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

 connection reset by peer

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值