python测试开发django-83.Dockerfile部署django项目

前言

现在流行用 docker 部署环境,python 开发的 django 项目也可以写个 Dockefile 文件,方便docker部署。
django 是依赖于python环境的,所有镜像制作是用一个python的镜像基础上把我们需要的环境添加过去就可以了。

Dockefile 文件

Dockefile的编写参考前面这篇https://www.cnblogs.com/yoyoketang/p/11397597.html

FROM python:3.6.8

MAINTAINER yoyo <283340479@qq.com>

# 更新下apt列表
RUN apt-get update

# 更新pip
RUN pip install --upgrade pip --index-url https://pypi.douban.com/simple

# 工作目录
WORKDIR /code
ADD . /code

# pip安装依赖包
RUN pip install -r requirements.txt --index-url https://pypi.douban.com/simple

# 打开容器的8000端口
EXPOSE 8000

# 执行命令行,启动django服务
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

requirements.txt 是django项目需要的依赖包,是开发完 django 项目之后,通过 pip 生成的

pip freeze >requirements.txt

Dockefile 和requirements.txt都是放到 django 项目的根目录下

build镜像

Dockefile 文件完成后,其它小伙伴拿到项目源码包,就可以在任意地方部署了。
把整个代码包放到 linux 服务器上,使用 docker 来 build 一个镜像

docker build -t django_yoyo .

这时候会看到build的步骤,等依赖包安装完成

[root@VM_0_2_centos yoyo]# docker build -t django_yoyo .
Sending build context to Docker daemon 7.729MB
Step 1/9 : FROM python:3.6.8
---> 48c06762acf0
Step 2/9 : MAINTAINER yoyo <283340479@qq.com>
---> Using cache
---> 791e4b982a47
Step 3/9 : RUN apt-get update
---> Using cache
---> 4d9a2088753e
Step 4/9 : RUN pip install --upgrade pip --index-url https://pypi.douban.com/simple
---> Using cache
---> d896cb71a359
Step 5/9 : WORKDIR /code
---> Using cache
---> c4d15025b172
Step 6/9 : ADD . /code
---> 8dcd424c81cd
Step 7/9 : RUN pip install -r requirements.txt --index-url https://pypi.douban.com/simple
---> Running in 8b84c81bfe5e
Step 8/9 : EXPOSE 8000
---> Running in d02c088d286d
Removing intermediate container d02c088d286d
---> 87bda6266abe
Step 9/9 : CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
---> Running in 1e616dd15c29
Removing intermediate container 1e616dd15c29
---> 984e5b0a9896
Successfully built 984e5b0a9896
Successfully tagged django_yoyo:latest

当看到 Successfully built 镜像就制作完成了,可以使用docker images查看镜像

[root@VM_0_2_centos yoyo]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
django_yoyo latest 984e5b0a9896 58 seconds ago 1.2GB

这是本地镜像的制作过程,有镜像仓库的小伙伴,上传到镜像仓库,其它小伙伴部署起来更方便,直接通过docker pull就可以拉到镜像了。
镜像仓库上传参考这篇https://www.cnblogs.com/yoyoketang/p/11923263.html

启动容器

docker run 运行容器,将容器8000端口映射到宿主机8000端口

docker run -it -p 8000:8000 —name web_yoyo1 -d django_yoyo

查看容器状态’docker ps -a’查看容器是否是Up状态

[root@VM_0_2_centos yoyo]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffd12bbbc16a django_yoyo "python manage.py ru…" About a minute ago Up About a minute 0.0.0.0:8000->8000/tcp

容器启动成功就可以访问django项目的页面了

2020年第五期《python接口自动化+测试开发》课程,10月11号开学(火热报名中!)
本期上课时间:10月11号-1月3号,每周六、周日晚上20:30-22:30

(0)

相关推荐

  • docker学习前述

    什么东西都不懂直接来学习docker是有点难的,学习docker需要哪些技术基础做支撑? Linux(相关常用的命令要会) springboot docker学习大纲如下: Docker概述 Dock ...

  • python测试开发django-82.线上部署设置DEBUG=FALSE

    前言 django项目线上部署到云服务器,setting里面设置DEBUG=FALSE后,访问网站静态资源没显示相关问题解决. 准备工作: 1.一台服务器,如阿里云,腾讯云, 或者自己整个虚拟机 2. ...

  • python测试开发django-10.django连接mysql

    前言 Django 对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle.本篇以mysql为例简单介绍django连接mysql进行数据操作 Django连 ...

  • python测试开发django-73.django视图 CBV 和 FBV

    前言 FBV(function base views) 就是在视图里使用函数处理请求,这一般是学django入门的时候开始使用的方式. CBV(class base views) 就是在视图里使用类处 ...

  • python测试开发django -140.Bootstrap 缩略图

    前言 网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 class .thumbnail 的& ...

  • python测试开发django -143.Bootstrap 表单控件校验状态

    前言 Bootstrap 对表单控件的校验状态,如 error.warning 和 success 状态,都定义了样式.使用时,添加 .has-warning..has-error 或 .has-su ...

  • python测试开发django -142.Bootstrap 表单(form)

    前言 HTML 表单用于收集不同类型的用户输入.boostrap中表单有几种样式 基本垂直表单 内联表单 form-inline 水平排列表单 form-horizontal 基本表单实例 单独的表单 ...

  • python测试开发django -141.Bootstrap 面板(Panels)

    # 前言 面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 元素添加 class .panel 和 class .panel-default 即可 基础面板 不带标题的基本面 ...

  • python测试开发django -144.Ace Editor 在线编辑python代码

    前言 网页上想在线编辑代码,可以使用Ace Editor 在线编辑实现.比如我们想实现一个功能,在网页版上写python代码,能有python的语法自动补齐功能. Ace Editor 在线编辑 AC ...

  • python测试开发django-1.开始hello world!

    前言 当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架.django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,想学pytho ...