美文网首页
docker 部署本地Django项目

docker 部署本地Django项目

作者: 托贝多尔 | 来源:发表于2020-05-10 21:17 被阅读0次

    1、docker 挂载容器数据库到本地

    下载安装mysql镜像:

    docker pull mysql:5.7
    

    挂载容器数据库到本地,并启动数据库容器:

    docker run --rm  --name quote-mysql -p 33061:3306 -v C:\Users\Administrator\Desktop\db:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7
    

    --rm 容器停机自动删除数据库
    -p 映射本地端口号:docker 数据库端口号
    -v 挂载本地文件夹:数据库容器文件夹
    -e 指定环境变量
    -d 指定数据库和标签
    创建数据库:

    mysql -uroot -P33061 -p12345
    show database;
    create database quote charset=utf8;
    

    下载安装redis镜像:

    docker pull redis:latest
    

    启动redis:

    docker run -itd --name quote_redis -p 6378:6379 redis 
    

    2、本地django项目在容器启动

    下载安装python镜像版本:

    docker pull python:3.6.5
    

    挂载本地项目到容器,并启动项目容器:
    -i交互模式运行容器
    -t分配临时终端给容器
    -d 后台运行容器
    --name 指定容器名
    -v 挂载本地文件夹:数据库容器文件夹
    /bash 启动并保存进程

    3、本地Django项目数据库缓存配置

    mysql数据库

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': '192.168.0.102',
            'PORT': 33061,
            'USER': 'root',
            'PASSWORD': '12345',
            'NAME': 'quote'
        }
    }
    

    redis缓存

        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://192.168.0.102:6378/0",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    

    celery应用

    import os
    
    from celery import Celery, platforms
    
    from quote_web import settings
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'quote_web.settings')
    
    app = Celery('quote_web', backend='redis://192.168.0.102:6378/8', broker='redis://192.168.0.102:6378/8')
    
    # You can pass the object directly here, but using a string is better since then the worker doesn’t have to serialize the object.
    app.config_from_object('django.conf:settings')
    # 如果在工程的应用中创建了tasks.py模块,那么Celery应用就会自动去检索创建的任务。比如你添加了一个任#务,在django中会实时地检索出来。
    app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
    # app.autodiscover_tasks()
    platforms.C_FORCE_ROOT = True
    
    CELERYD_MAX_TASKS_PER_CHILD = 10
    
    
    @app.task(bind=True)
    def debug_task(self):
        print('Request: {0!r}'.format(self.request))
    

    4、安装项目依赖并启动项目

    pip install --upgrade pip
    pip install -f requirement.txt
    python manage.py migrate
    python manage.py runserver 0.0.0.0:8000
    

    相关文章

      网友评论

          本文标题:docker 部署本地Django项目

          本文链接:https://www.haomeiwen.com/subject/wodsnhtx.html