zoukankan      html  css  js  c++  java
  • 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项目的页面了

  • 相关阅读:
    新浪SAE搭建项目
    PHP ReflectionClass
    自定义时间函数
    mysql 日期函数
    jquery之商城菜单
    jquery之行自加自减
    前端之拖动面板
    商城轮播图
    js之返回网页顶部
    js之搜索框
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/13822532.html
Copyright © 2011-2022 走看看