• 使用docker方式测试部署django项目(客户催)


    需求
    1:已有django项目–weidanyewu
    2:希望在服务器上测试部署–客户催
    3:没完善django的启动
    4:使用临时数据库进行演示
    5:使用python3.10版本镜像
    6:展示端口80
    7:后台执行django程序
    8:不配置uwsgi
    9:能用就行
    10:不想自己给服务器配置python环境,运维已经逃

    在这里插入图片描述

    Dockerfile文件【docker/Dockerfile】

    FROM python:3.10.12-buster  
    #标记镜像名为python 标签为3.10.12-buster  
      
    # 暴露端口  
    EXPOSE 80  
    EXPOSE 80  
    # 设置容器中的相关设置  
    ENV PYTHONDONTWRITEBYTECODE=1  
    ENV PYTHONUNBUFFERED=1  
    # 创建文件夹  
    # 并且升级pip  
    RUN mkdir /weidanyewu && mkdir /weidanyewubak && pip install --upgrade pip  
      
      
    # 复制本Dockerfile路径中的requirements.txt文件到容器中的weidanyewu文件夹  
    COPY requirements.txt /weidanyewu  
      
    # 进入容器中的app文件夹  
    # 获取到容器中的环境变量,并且存放到app文件夹中,命名为env_bak.txt文件  
    # 安装requirements.txt中列出的插件  
    # 在容器中创建一个django项目,并且命名为weidanyewu  
    RUN cd /weidanyewu && env | tee -a env_bak.txt && pip install -r requirements.txt && django-admin startproject weidanyewu  
      
      
    #进入到容器中的weidanyewu文件夹,并且复制这个文件夹中的内容到weidanyewubak文件夹  
      
    RUN cd /weidanyewu && cp -r . /weidanyewubak
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    django框架使用到的插件
    requirements.txt【docker/requirements.txt】

    django==4.2.8  
    django-import-export==3.3.6  
    cryptography==41.0.7  
    pycparser==2.21  
    pycryptodome==3.20.0  
    rsa==4.9  
    django-simple-captcha==0.6.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    docker-compose.yml文件

    version: "3.9"  
      
    # 指定网络  
    networks:  
        aliyuntest:  
            ipam:  
                driver: default  
                config:  
                  - subnet: 172.168.0.0/16  
      
    services:  
      # my_django4_2_5 用于服务 8003端口  域名 chenguwen  my_django_8003:  
        build: ./docker  
        #因为这个Dockerfile在docker/Dockerfile  
        # 指定docker镜像的名字  
        image: my_django_8003:b20231007  
        # 指定容器名称  
        container_name: my_django_8003  
        environment:  
          # django框架使用的密匙  
          # 指定django框架启动的本地开发入口文件   
    ports:  
          - 80:80/tcp  
        restart: always  
        volumes:  
          # -使用wsl 子系统时,挂载的文件路径  
          - /home/pythontgz/weidanyewu:/weidanyewu  
        working_dir: /weidanyewu  
        privileged: true  
        command: ["sleep", "infinity"]   
        networks:  
          aliyuntest:  
            ipv4_address: 172.168.0.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    启动docker compose

    docker compose up -d
    
    • 1

    进入到容器中

    docker compose exec my_django_8003 bash
    docker compose exec [服务名] bash
    
    • 1
    • 2

    启动django程序

    cd /weidanyewu
    python manage.py runserver 0.0.0.0:80
    
    • 1
    • 2

    希望django程序在后台执行

    1:进入容器
    docker compose exec my_django_8003 bash
    2:后台执行django程序
    nohup python manage.py runserver 0.0.0.0:80 &
    3:推出容器
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Python按类别和比例从Labelme数据集中划分出训练数据集和测试数据集
    c语言回文数
    JMETER连接数据库
    PostgreSQL对已有表增加自增序列
    splice 和 slice 会改变原数组吗? 怎么删除数组最后一个元素?
    xml schema
    WiFi 6的数据在发送端分片和在接收端重组的理解
    《计算机视觉基础知识蓝皮书》第2篇 深度学习基础
    Python中的yield关键字
    【统计分析和过程改进】上海道宁带来Minitab软件合集,帮助企业和组织发挥数据的价值
  • 原文地址:https://blog.csdn.net/weixin_47021806/article/details/136384891