前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python测试开发django-83.Dockerfile部署django项目

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

作者头像
上海-悠悠
发布2020-10-27 10:32:46
1.1K0
发布2020-10-27 10:32:46
举报
文章被收录于专栏:从零开始学自动化测试

前言

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

Dockefile 文件

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

代码语言:javascript
复制
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 生成的

代码语言:javascript
复制
pip freeze >requirements.txt

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

build镜像

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

docker build -t django_yoyo .

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

代码语言:javascript
复制
[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查看镜像

代码语言:javascript
复制
[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状态

代码语言:javascript
复制
[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-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Dockefile 文件
  • build镜像
  • 启动容器
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档