Jenkins發(fā)布django

1. 代碼準(zhǔn)備

在項(xiàng)目根目錄下新建一個(gè)docker_env目錄, 其下文件如下 https://gitee.com/wzj66/jenkins-test-code/tree/master/docker_env
在項(xiàng)目根目錄下新建四個(gè)文件, 分別為Dockerfile, Jenkinsfile, requirements.txt, uwsgi.ini

1.1 Dockerfile內(nèi)容

FROM ubuntu:18.04
# 支持中文
ENV LANG C.UTF-8

#創(chuàng)建項(xiàng)目文件夾, 設(shè)項(xiàng)目名為 project
RUN mkdir /project/
COPY . /project
RUN mkdir /root/.pip/
#時(shí)區(qū)配置
RUN mkdir -p /usr/share/zoneinfo/Asia
RUN cp /project/docker_env/Shanghai /usr/share/zoneinfo/Asia/Shanghai
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 換源
RUN cp /project/docker_env/sources.list /etc/apt/sources.list
RUN cp /project/docker_env/pip.conf /root/.pip/pip.conf
# 軟件安裝
RUN apt update
RUN apt install software-properties-common -y
RUN add-apt-repository ppa:deadsnakes/ppa -y
RUN apt update
RUN apt install python3.6 -y
RUN apt-get install python3-pip -y
RUN pip3 install --upgrade pip
RUN apt-get install build-essential python3.6-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev -y
# 安裝pip模塊
RUN pip3 install -r /project/requirements.txt
# 如果有celery,執(zhí)行這一個(gè), 沒(méi)有注釋
# RUN echo "nohup python3 /project/manage.py celery worker & >/dev/null 2>&1 &" >> /root/run.sh
RUN echo "uwsgi --ini  /project/uwsgi.ini" >> /root/run.sh
EXPOSE 8003
ENTRYPOINT  ["bash", "/root/run.sh"]

1.2 Jenkinsfile內(nèi)容

設(shè)鏡像名為image_name
設(shè)容器名為container_name

pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        sh 'docker build -t image_name .'
      }
    }

    stage('Deploy') {
      steps {
        sh '''if [ $(docker ps -aq --filter name=container_name) ];then docker rm -f container_name;fi
docker run \\
    --detach \\
    --publish 8003:8003 \\
    --publish 5553:5555 \\
    --name container_name \\
    image_name'''
      }
    }
  }
}

1.3 requirements.txt內(nèi)容

Django==2.2.2
django-cors-headers==3.1.1
django-redis==4.10.0
djangorestframework==3.10.3
mysql-connector==2.2.9
PyJWT==1.7.1
PyMySQL==0.9.3
redis==2.10.6
requests==2.22.0
SQLAlchemy==1.2.11
SQLAlchemy-Utils==0.35.0
uWSGI==2.0.20
python-dateutil==2.8.1

1.4 uwsgi.ini內(nèi)容

[uwsgi]
http  = 0.0.0.0:8003
chdir      = /project
module     = project.wsgi
master     = true
processes    = 4
vacuum     = false

2. Jenkins流水線

2.1 創(chuàng)建流水線

進(jìn)入頁(yè)面以后點(diǎn)擊打開(kāi)Blue Ocean

點(diǎn)擊創(chuàng)建新的流水線

image.png

代碼倉(cāng)庫(kù)選擇git

輸入倉(cāng)庫(kù)url, 用戶名密碼

點(diǎn)擊創(chuàng)建證書(shū), 創(chuàng)建流水線

image.png

創(chuàng)建完流水線之后會(huì)自動(dòng)運(yùn)行流水線


image.png

2.2 編輯腳本

如果想在Jenkins頁(yè)面編輯流水線步驟(Jenkinsfile)
點(diǎn)擊右上角編輯可以編輯流水線腳本

image.png
image.png

編輯完流水線腳本也回自動(dòng)運(yùn)行一次流水線
編輯完腳本后會(huì)幫你提交一次代碼, 本地的項(xiàng)目里面記得pull一下代碼

2.3 完成

流水線運(yùn)行完成則可以訪問(wèn)自己的django項(xiàng)目


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容