<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      jenkins的安裝和配置(flask結合jenkins半自動化部署流程)

      jenkins在虛擬機中安裝

      1.1 背景介紹

      Jenkins 是一款流行的開源持續集成(Continuous Integration)工具,廣泛用于項目開發,具有自動化構建、測試和部署等功能。
      Jenkins官網: http://jenkins-ci.org/

      Jenkins 特征

      • 開源的Java語言開發持續集成工具,支持持續集成,持續部署。
      • 易于安裝部署配置:可通過yum安裝,或下載war包以及通過docker容器等快速實現安裝部署,可方便web界面配置管理。
      • 消息通知及測試報告:集成RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測試報告。
      • 分布式構建:支持Jenkins能夠讓多臺計算機一起構建/測試。
      • 文件識別:Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。
      • 豐富的插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具,如git,svn,maven,docker等。

      1.2 安裝

      普通虛擬機安裝參考: https://www.jianshu.com/p/400b4516b98e

      docker化安裝參考: https://developer.aliyun.com/article/892646

      1.3 使用

      首先我們想實現的是flask一個后端服務的自動化部署, 我的后端服務是部署在docker上的, 所以要先知道docker的一些簡單命令, 我這里就不細說了. 直接開用

      flask 服務 app.py 代碼如下

      from flask import Flask, jsonify
      
      app = Flask(__name__)
      
      
      @app.route('/')
      def hello_world():
        return 'Hello, World!'
      
      
      @app.route('/health')
      def health_checking():
        ret = {'status': 'UP'}
        return jsonify(ret)
      
      
      @app.route('/hello')
      def hello_chen():
        return 'Hello, chen!'
      
      
      @app.route('/index')
      def index():
        return 'Index!'
      
      @app.route('/ckk')
      def ckk():
        return 'Chenkeke'
      
      

      DockerFile 文件如下, 意思就是用 gunicorn 啟動flask 的 app 然后用5001端口進行訪問

      FROM python:3.8
      
      RUN pip install --no-cache-dir -i http://mirrors.aliyun.com/pypi/simple/ \
      --trusted-host mirrors.aliyun.com Flask gunicorn
      
      ADD . /app
      
      ENV GUNICORN_CMD_ARGS="--bind=0.0.0.0:5001 --chdir=./app/ --workers=4"
      
      CMD ["gunicorn", "app:app"]
      
      

      這兩個文件配置好之后, 需要上傳到gitlab上面, 如圖

      配置好服務器的ssh在gitlab上面, 這樣可以直接通過ssh拉取(不過不配也沒關系, 我是通過http拉的項目)

      配完之后可以試試能不能在服務器上把項目拉取下來, 然后通過DockDile起個任務看看能不能成功運行這個項目, 直接進到拉取的文件下編譯(注意是同一層)

      docker build -t your_image_name .
      

      成功之后會生成一個鏡像, 然后執行鏡像

      docker run -d --name test -p 5001:5001 your_image_name
      

      打開網頁看看, 成功執行

      關閉容器,且刪除這個鏡像, 不然后面的時候會報錯

      可以了的話就進行下一步配置Jenkins, Jenkins的端口安裝好了之后默認是8080, 可以先觀察一下界面熟悉一下. 沒問題之后,我們點擊新建一個工作流

      1. 配置gitlab的賬號密碼, 拉取代碼的倉庫

      1. 選擇構建后操作,執行shell

      執行shell的步驟, 可以自行百度意思

      #!/bin/bash
      echo "hello chen"
      # 關閉docker項目
      IMAGE_NAME="company_flask"
      CONTAINER_NAME="my_container"
      PORT_MAPPING="5001:5001"
      WORKSPACE_PATH="/var/lib/jenkins/workspace/demo"
      # 檢查容器是否已經在運行中
      if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then
          echo "Stopping existing $CONTAINER_NAME container..."
          docker stop $CONTAINER_NAME
      fi
      
      # 檢查是否存在名為 $IMAGE_NAME 的 Docker 鏡像
      if docker images | awk '{print $1}' | grep -q "^$IMAGE_NAME$"; then
          # 如果存在,則刪除該鏡像
          echo "Deleting existing $IMAGE_NAME image..."
          docker rmi $IMAGE_NAME
      fi
      
      # 檢查是否存在名為 $CONTAINER_NAME 的 Docker 容器
      if docker ps -a | awk '{print $NF}' | grep -q "^$CONTAINER_NAME$"; then
          # 如果存在,則刪除該容器
          echo "Deleting existing $CONTAINER_NAME container..."
          docker rm $CONTAINER_NAME
      fi
      
      # 進入工作目錄并構建新的 Docker 鏡像
      cd $WORKSPACE_PATH
      docker build -t $IMAGE_NAME .
      
      # 啟動新的 Docker 容器
      echo "Starting new $CONTAINER_NAME container..."
      docker run -d --name $CONTAINER_NAME -p $PORT_MAPPING $IMAGE_NAME
      

      然后點擊保存, 這時候就應該開始構建了, 查看構建的歷史

      查看控制臺輸出

      成功。然后在本文編輯文件中新增一個接口并推送到遠端git, 然后重新構建看一下。

      上傳code

      看看git有沒有上傳成功

      然后登錄jenkins 重新構建鏡像

      查看構建歷史

      選擇最近的一次構建

      查看控制臺輸出,可以看到已經將最新的代碼拉取下來了

      看看能不能訪問到接口

      也是成功的。現在已經可以使用自動部署了,但是是半自動部署的.因為還需要登錄jenkins然后手動構建 目前還是不完善的.
      因為jenkins是本地的 git用的是網上的gitlab 所以不能形成一個閉環. 所以下一次博客會將gitlab和jenkins都用docker部署起來.然后完成一個全自動的自動化部署.

      posted @ 2023-05-11 15:48  陳科科  閱讀(601)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99久久亚洲综合精品成人网| 一本大道av人久久综合| 久久精品久久精品久久精品| 国产乱理伦片在线观看| 国产区精品福利在线熟女| 午夜国产理论大片高清| 真实国产老熟女无套内射| 丁香五月亚洲综合在线国内自拍| 美乳丰满人妻无码视频| 俄罗斯美女真人性做爰| 四虎亚洲国产成人久久精品| 国产一区二区三区怡红院| 伊人精品久久久大香线蕉| 精品国产亚洲一区二区三区| 成人午夜av在线播放| 小嫩批日出水无码视频免费| 久久久久国色av免费观看性色| 日韩精品国产二区三区| 日本一卡2卡3卡4卡无卡免费| 99精品国产高清一区二区麻豆 | 亚洲人成小说网站色在线| 秋霞人妻无码中文字幕| 久久国产热这里只有精品| 国产精品午夜无码AV天美传媒 | 蜜臀av一区二区三区日韩| 亚洲av永久无码精品漫画| 精品国产精品午夜福利| 国精品午夜福利视频不卡| 免费无码观看的AV在线播放| 日韩AV高清在线看片| 亚洲乱人伦中文字幕无码| 一色桃子中出欲求不满人妻| 国产乱码精品一品二品| 一本大道无码av天堂| 国产99视频精品免费专区| 国产精品一区二区三区色| 日韩乱码人妻无码中文字幕| 色爱综合另类图片av| av在线播放无码线| 国产欧美国日产高清| 久热这里只有精品在线观看|