最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

dockerExecute 函數(shù)和docker.build的區(qū)別解析

 更新時(shí)間:2024年12月19日 15:04:33   作者:Rhys..  
dockerExecute 通常是一個(gè)自定義的函數(shù)或者由特定的 Jenkins 庫(kù)(如 piper-lib)提供,用于在 Docker 容器中執(zhí)行特定的命令,這篇文章主要介紹了dockerExecute 函數(shù)和docker.build的區(qū)別,需要的朋友可以參考下

一、dockerExecute介紹

dockerExecute 通常是一個(gè)自定義的函數(shù)或者由特定的 Jenkins 庫(kù)(如 piper-lib)提供,用于在 Docker 容器中執(zhí)行特定的命令。這類(lèi)函數(shù)可以幫助在構(gòu)建或測(cè)試階段管理 Docker 容器的生命周期,確保步驟在容器內(nèi)運(yùn)行。它的作用是啟動(dòng)一個(gè) Docker 容器,并在該容器中執(zhí)行提供的命令.

1、使用場(chǎng)景:

  • 執(zhí)行需要隔離環(huán)境的任務(wù):當(dāng)你需要在指定的 Docker 容器中運(yùn)行特定的命令,例如運(yùn)行測(cè)試腳本、構(gòu)建項(xiàng)目等。
  • 保證環(huán)境一致性:確保在一個(gè)隔離的、標(biāo)準(zhǔn)化的 Docker 容器中運(yùn)行任務(wù),從而消除環(huán)境差異帶來(lái)的問(wèn)題。
  • 動(dòng)態(tài)設(shè)置:允許對(duì)容器的配置進(jìn)行更細(xì)粒度的控制,如動(dòng)態(tài)設(shè)置環(huán)境變量、掛載卷等。

2、dockerexecute方法的使用介紹

因?yàn)槲业臏y(cè)試背景正好是 公司內(nèi)部的 Docker 鏡像存儲(chǔ)庫(kù)中的有一個(gè)現(xiàn)成的專(zhuān)用于測(cè)試的鏡像;所以我直接在這個(gè)pipline腳本中去運(yùn)用了這個(gè)方法,給大家看個(gè)例子順便講解一下:

stage('test') {
    node {
        dockerExecute(script: this,
        dockerImage: "your-docker-image",
        dockerName: 'your-docker-name'{
// 在 Docker 容器內(nèi)部執(zhí)行以下命令
                    sh '''
                        //例如安裝依賴(lài),設(shè)置環(huán)境變量,執(zhí)行關(guān)鍵腳本等等
                        python main.py
                        '''
}

3、dockerExecute 接受的參數(shù)解釋?zhuān)?/h3>
  • script: this:
    • this 傳遞給 script 參數(shù)。它通常用于在 dockerExecute 函數(shù)內(nèi)部引用當(dāng)前腳本或上下文。
  • dockerImage: "your-docker-image",
    • 指定 Docker 鏡像的名稱(chēng)。這個(gè)鏡像往往包含了你所需要的環(huán)境(例如特定版本的 Python 及相關(guān)工具和依賴(lài))。
  • dockerName: 'your-docker-name'
    • 設(shè)置 Docker 容器的名稱(chēng)。這有助于在 Jenkins 日志和其他地方識(shí)別運(yùn)行的容器。

作用總結(jié)

  • 在指定的 Docker 鏡像基礎(chǔ)上啟動(dòng)一個(gè) Docker 容器。
  • 參數(shù) script: this 引用當(dāng)前腳本上下文。
  • 參數(shù) dockerImage 指定要使用的 Docker 鏡像。
  • 參數(shù) dockerName 為啟動(dòng)的容器命名。

二、docker.build介紹

docker.build 是 Jenkins 的 Docker 插件提供的一個(gè)方法,用于構(gòu)建 Docker 鏡像。它會(huì)讀取當(dāng)前目錄下的 Dockerfile 并構(gòu)建一個(gè)新的 Docker 鏡像,有助于將你的應(yīng)用和所有的依賴(lài)封裝到一個(gè)標(biāo)準(zhǔn)的鏡像中。

1、使用場(chǎng)景:

  • 構(gòu)建新的 Docker 鏡像:當(dāng)你需要基于 Dockerfile 構(gòu)建一個(gè)新的 Docker 鏡像時(shí)使用。
  • 版本控制和部署:將應(yīng)用打包成 Docker 鏡像,作為 CI/CD 流程的一部分提交到 Docker Registry 或用于部署。

2、結(jié)合使用

  • 典型的工作流可能涉及先用 docker.build 構(gòu)建鏡像,然后用該鏡像運(yùn)行某些任務(wù),如測(cè)試套件。

3、定義場(chǎng)景

  • 假設(shè)你有一個(gè) Python 項(xiàng)目,你想要構(gòu)建并在 Docker 容器中運(yùn)行測(cè)試。
  • 你需要在項(xiàng)目根目錄下創(chuàng)建一個(gè)Jenkinsfile和一個(gè)dockerfile

(1)dockerfile示例:

# 使用已有基礎(chǔ)鏡像
FROM your-docker-image
# 設(shè)置工作目錄
WORKDIR /web-test
# 安裝系統(tǒng)依賴(lài)包括 chromedriver 和 google-chrome
RUN apt-get update && apt-get install -y \
    xvfb \
    x11-utils \
    libgl1-mesa-glx \
    wget \
    unzip \
    curl \
    gnupg \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
# 安裝 chromedriver
RUN wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.com/113.0.5672.63/chromedriver_linux64.zip \
    && unzip /tmp/chromedriver.zip -d /usr/local/bin/ \
    && rm /tmp/chromedriver.zip
# 下載并安裝 google-chrome
RUN wget -O /tmp/google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
    && apt-get update && apt-get install -y --no-install-recommends /tmp/google-chrome.deb \
    && rm /tmp/google-chrome.deb
# 將 requirements.txt 復(fù)制到工作目錄
COPY requirements.txt .
# 安裝 Python 依賴(lài)
RUN pip install --no-cache-dir -r requirements.txt
# 將項(xiàng)目文件復(fù)制到工作目錄
COPY . .
# 設(shè)置環(huán)境變量
ENV DISPLAY=:99
# 啟動(dòng) Xvfb 并運(yùn)行應(yīng)用
CMD Xvfb :99 -screen 0 1920x1080x24 & python PANA/GenerateReport.py

(2)Jenkinsfile示例:

@Library(["piper-lib", "piper-lib-os"]) _
pipeline {
    agent any
    stages {
        stage('checkout') {
            steps {
                checkout scm
            }
        }
        stage('build-image') {
            steps {
                script {
                    // 使用當(dāng)前目錄下的 Dockerfile 構(gòu)建新的 Docker 鏡像
                    docker.build('my-repo/my-python-app:latest', '-f Dockerfile .')
                }
            }
        }
        stage('test') {
            steps {
                script {
                    dockerExecute(script: this,
                    dockerImage: "my-repo/my-python-app:latest",
                    dockerName: 'python') {
                        sh '''
                            set -e
                            # 設(shè)置 DISPLAY 環(huán)境變量
                            export DISPLAY=:99
                            # 啟動(dòng) Xvfb 并在后臺(tái)運(yùn)行
                            Xvfb :99 -screen 0 1920x1080x24 &
                            # 等待 Xvfb 完全啟動(dòng)
                            sleep 5
                            # 打印 Python 版本信息
                            python --version
                            # 升級(jí) pip
                            python -m pip install --upgrade pip
                            # 切換到工作目錄
                            cd $WORKSPACE
                            # 安裝 Python 依賴(lài)
                            python -m pip install -r requirements.txt
                            # 運(yùn)行 Python 腳本
                            python PANA/GenerateReport.py
                            # 可選:確保完成后停止 Xvfb
                            killall Xvfb
                        '''
                    }
                }
            }
        }
    }
    post {
        always {
            echo 'Cleaning up...'
            // 放置任何清理步驟
        }
        success {
            echo 'Pipeline succeeded'
        }
        failure {
            echo 'Pipeline failed'
        }
    }
}

三、關(guān)鍵區(qū)別

1、構(gòu)建與運(yùn)行

  • docker.build: 用于構(gòu)建 Docker 鏡像,基于項(xiàng)目?jī)?nèi)的 Dockerfile。
  • dockerExecute: 用于在構(gòu)建好的 Docker 鏡像基礎(chǔ)上運(yùn)行命令。

2、具體用途

  • docker.build: 主要用于 CI 流程中的構(gòu)建步驟,確保應(yīng)用代碼和依賴(lài)打包在一個(gè)鏡像中。
  • dockerExecute: 用于在特定的 Docker 鏡像中執(zhí)行任務(wù),適合用于測(cè)試、執(zhí)行腳本等需要隔離環(huán)境的步驟。

到此這篇關(guān)于dockerExecute 函數(shù)和docker.build的區(qū)別的文章就介紹到這了,更多相關(guān)dockerExecute 函數(shù)和docker.build內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker?compose搭建ELK服務(wù)基本使用

    Docker?compose搭建ELK服務(wù)基本使用

    這篇文章主要為大家介紹了Docker?compose搭建ELK服務(wù)基本使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 詳解使用Docker進(jìn)行Redis主從復(fù)制實(shí)踐

    詳解使用Docker進(jìn)行Redis主從復(fù)制實(shí)踐

    這篇文章主要介紹了詳解使用Docker進(jìn)行Redis主從復(fù)制實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • docker下載運(yùn)行java項(xiàng)目的實(shí)現(xiàn)步驟

    docker下載運(yùn)行java項(xiàng)目的實(shí)現(xiàn)步驟

    本文主要介紹了docker下載運(yùn)行java項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • Docker 部署寶塔面板 Nginx 反向代理 502 踩坑實(shí)戰(zhàn)指南

    Docker 部署寶塔面板 Nginx 反向代理 502 踩坑實(shí)戰(zhàn)指南

    該文主要討論了使用Docker部署寶塔面板時(shí)遇到的Nginx反向代理問(wèn)題,錯(cuò)誤在于將127.0.0.1作為宿主機(jī)端口,導(dǎo)致容器找不到服務(wù);正確的做法是使用host.docker.internal,它可以訪(fǎng)問(wèn)到宿主機(jī),喜歡的朋友跟隨小編一起看看吧
    2026-03-03
  • 如何刪除docker-register鏡像及none無(wú)效鏡像詳解

    如何刪除docker-register鏡像及none無(wú)效鏡像詳解

    這篇文章主要給大家介紹了關(guān)于如何刪除docker-register鏡像及none無(wú)效鏡像的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Docker設(shè)置mysql不區(qū)分大小寫(xiě)問(wèn)題

    Docker設(shè)置mysql不區(qū)分大小寫(xiě)問(wèn)題

    這篇文章主要介紹了Docker設(shè)置mysql不區(qū)分大小寫(xiě)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker?Windows最新版(4.17.x)修改鏡像存儲(chǔ)路徑的詳細(xì)步驟

    Docker?Windows最新版(4.17.x)修改鏡像存儲(chǔ)路徑的詳細(xì)步驟

    這篇文章主要介紹了Docker?WIndows最新版(4.17.x)修改鏡像存儲(chǔ)路徑的步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Docker可視化工具Portainer詳解

    Docker可視化工具Portainer詳解

    這篇文章主要介紹了Docker可視化工具Portainer使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-06-06
  • Docker Compose實(shí)現(xiàn)秒級(jí)擴(kuò)容的方法步驟

    Docker Compose實(shí)現(xiàn)秒級(jí)擴(kuò)容的方法步驟

    本文主要介紹了Docker Compose實(shí)現(xiàn)秒級(jí)擴(kuò)容的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • docker安裝geoserver的方法步驟

    docker安裝geoserver的方法步驟

    GeoServer是OGC Web服務(wù)器規(guī)范的J2EE實(shí)現(xiàn),利用GeoServer可以方便地發(fā)布地圖數(shù)據(jù),本文主要介紹了docker安裝geoserver的方法步驟,感興趣的可以了解一下
    2024-08-08

最新評(píng)論

青海省| 那曲县| 巢湖市| 安远县| 黄冈市| 华阴市| 夏河县| 湖北省| 东海县| 建昌县| 湄潭县| 安吉县| 乌拉特中旗| 尼勒克县| 张掖市| 隆林| 镇平县| 棋牌| 留坝县| 鱼台县| 黎城县| 上思县| 平塘县| 英山县| 浙江省| 南澳县| 沾益县| 盐池县| 靖江市| 博罗县| 阳西县| 古交市| 沁源县| 始兴县| 突泉县| 花垣县| 五莲县| 郎溪县| 宁晋县| 开远市| 漳州市|