运行 来自 Docker 容器中 Jenkins 管道的 Django 服务器

Running Django server from Jenkins pipeline in Docker container

我正在尝试设置 Jenkins 管道来部署 Django 项目并在后台运行 Django 的开发服务器。

我想把它分成 3 个步骤,构建、测试、运行。

除了最后一步,一切都很好,确实,当我这样设置时:

...

stage('Run') {
    steps{
        dir('auto'){
            sh 'pwd'
            sh '/usr/bin/python3.8 manage.py runserver 0.0.0.0:8000'
        }
    }
}

服务器启动正常,我可以通过http://127.0.0.1:8000访问项目,但作业没有结束。

我试图绕过这个问题,让服务器 运行 在后台使用 nohup $:

...

stage('Run') {
    steps{
        dir('auto'){
            sh 'pwd'
            sh 'nohup /usr/bin/python3.8 manage.py runserver 0.0.0.0:8000 $'
        }
    }
}

但服务器无法访问 http://127.0.0.1:8000

我是 Jenkins 初学者,也许这不是在后台设置进程 运行 的正确方法。

关注此 post:Clean way of launching a shell script in background from Jenkins 我使用变量设置 JENKINS_NODE_COOKIE=dontKillMe 像这样:

stage('Run') {
    steps{
        dir('auto'){
            sh 'pwd'
            sh 'JENKINS_NODE_COOKIE=dontKillMe nohup /usr/bin/python3.8 manage.py runserver 0.0.0.0:8000 &'
        }
    }
}