标签:sgi ESS try generated linux 自动清理 top localhost 自动
其实这个搞这个就因为一点小事,django的日志无法按日期切分
原来方式都是直接用manage.py runserver的,听取了同事的建议开始准备使用uwsgi来搞
1.安装uwsgi
pip install uwsgi
2.django新增一个uwsgi的配置文件
[uwsgi] http = :端口 socket = /tmp/名字随意.sock #这里文件夹必须要全部权限 chdir = /code #工作路径 wsgi-file = 项目路径/wsgi.py processes = 4 threads = 2 stats = 127.0.0.1:9191 #不知道干啥用的,但如果一台服务器上有2个站点,这个的端口号必须不一样 否则会报错 vacuum= true
配置完成后可在linux上试试是否能正常启动,启动命令
uwsgi --ini uwsgi.ini
3.整理自己项目的requirements.txt,上手没怎么关心过这块,后面发现部署docker的时候真心是太累了,以后一定会坚持维护。。。
4.创建一个dockerfile文件
FROM 基础镜像 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD . /code/ RUN pip install -r requirements.txt RUN python manage.py collectstatic --noinput CMD ["/bin/sh","run.sh"]
我的基础镜像有专门默认装了一些工具,比如django,request,uwsgi等
5.创建一个启动文件run.sh,路径要和dockerfile中的路径对应
uwsgi --ini uwsgi.ini
6.部署jenkins,我写的是pipeline
pipeline {
    agent none
    environment {
        result_info = "Info: "
    }
    options {
            timeout(time: 5, unit: ‘MINUTES‘)
            retry(1)
    }
    stages {
        stage(‘git_build‘) {
            agent { label ‘master_linux‘ }
            steps {
                git branch: ‘master‘, credentialsId: ‘jenkins的git登录用户‘, url: ‘git路径‘
                
                sh ‘‘‘
                    docker build -t 编译出来的镜像名 -f  Dockerfile   .
                ‘‘‘
                
                
                sh ‘‘‘
                docker push 编译出来的镜像名
                docker rmi 编译出来的镜像名
                ‘‘‘
            }
        }
        stage(‘deploy‘) {
            parallel {
                
                stage(‘deploy‘) {
                    agent { label ‘服务器label‘ }
                    steps {
                        sh ‘‘‘
                        docker pull 编译出来的镜像名
                        ‘‘‘
                        script{
                            def return_code = sh(returnStatus:true, script:‘‘‘
                            docker stop 容器名
                            docker rm 容器名
                            ‘‘‘)
                            echo ‘return_code‘+return_code
                            if (return_code == 0)
                            {
                                result_info += "succuss. "
                            }
                            else
                            {
                                result_info += "fail. "
                            }
                        }
                        sh ‘‘‘
                        docker run -d --name 容器名 --net=host -v /var/log/workstation_jenkins:/code/log -v /tmp:/tmp  -v /etc/localtime:/etc/localtime --hostname=localhost 编译出来的镜像名
                        ‘‘‘
                    }
                }
            }
        }
    }
}
K8S编排本身以调通,还有点小问题 近期会补上
标签:sgi ESS try generated linux 自动清理 top localhost 自动
原文地址:https://www.cnblogs.com/edwar172038/p/10213252.html