在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Docker 教程:如何將Helix QAC作為容器創(chuàng)建并運行

北匯信息POLELINK ? 2022-10-31 09:36 ? 次閱讀

在此 Docker 教程中,你將學習如何創(chuàng)建Helix QAC并將其作為容器化鏡像運行。

Docker的基本定義是一種開源和流行的操作系統(tǒng)級虛擬化(通常稱為“容器化”)技術,它是輕量級的,可移植的,并且主要在Linux和Windows上運行。Docker使使用容器創(chuàng)建、部署和運行應用程序變得更加容易。

從根本上說,容器只是一個正在運行的進程,并應用了一些附加的封裝功能。借助容器,開發(fā)人員(和DevOps管理員)可以將應用程序與運行應用程序所需的一切(包括代碼、運行時、庫、配置的環(huán)境變量和配置文件)打包在一起,并將其全部作為一個包提供。

還值得一提的是,Docker可以立即啟動,并具有用于版本控制和組件可重用的內置機制。這些Docker容器可以通過公共Docker中心或私有存儲庫共享,從而使其易于訪問和使用。

以下是 Docker 的一些最顯著的優(yōu)勢:

  • 快速部署:Docker 可以為每個進程創(chuàng)建一個容器,然后可以根據(jù)需要快速啟動和刪除該容器,而無需啟動平臺操作系統(tǒng) (OS)。這將部署過程時間縮短到幾秒鐘 此外,Docker鏡像啟動幾乎是實時響應的。
  • 可移植性:Docker 允許將經過測試的容器化應用程序部署到運行Docker的任何其他系統(tǒng),并確保其執(zhí)行方式與您測試時完全相同。Docker鏡像可以與其他團隊共享。
  • 性能:盡管虛擬機 (VM) 是容器的替代方法,但VM具有操作系統(tǒng),而Docker容器則沒有。這意味著容器的占用空間比VM小,創(chuàng)建速度更快,并且啟動和刪除時間更快。
  • 持續(xù)集成效率:Docker 使你能夠構建容器鏡像,并在從開發(fā)、測試到部署的每個步驟中使用它。此外,您還可以分離不相關的步驟并且并行地運行它們,從而縮短從生成階段到生產部署階段所需的時間。這減少了設置環(huán)境和調試特定于環(huán)境的問題的時間,使它們更可靠,更易于維護。

但是,Docker 存在一些限制,盡管它們對Docker靜態(tài)分析器的設置的影響很小甚至為零,但了解這些限制對您來說仍然很重要。

  • Docker 不能替代虛擬機:許多在 VM 中運行的應用都可以移動到容器中,但這并不意味著它們都可以或應該移動到容器中。例如:具有嚴格法規(guī)要求的行業(yè)可能無法將容器交換為VM,因為VM比容器提供更多的隔離。
  • 容器中的數(shù)據(jù):有時容器確實會出現(xiàn)故障,在這種情況下,它需要備份和恢復策略。雖然有幾種解決方案,但沒有一個是自動化的或者尚不可擴展的。另一個限制是,除非您在容器關閉之前先將其保存在某個位置,否則當它關閉時,其中的所有數(shù)據(jù)都會永遠消失。
  • 跨平臺兼容性:如果應用程序被設計為在特定平臺(如 Windows OS 平臺或Linux)上的Docker容器中運行,這是一個主要問題,因為它無法在任何其他平臺上運行。但是,虛擬機不受此限制的約束,因此該限制使 Docker 對一些由Windows和Linux服務器組成的高度異構環(huán)境的吸引力降低。
  • 使用圖形界面運行應用程序:通常,Docker 設計用于托管在命令行上運行的應用程序。雖然我們有幾種方法(如使用X11轉發(fā)或MobaXterm)可以在 Docker 容器內運行圖形界面,但這些過程很笨拙。因此,我們可以說Docker對于需要豐富接口的應用程序來說不是一個好的解決方案。

為了幫助將靜態(tài)分析工具設置為 Docker 并解決這些限制,我將把設置分解為三個簡單的部分。

第一部分:準備Docker引擎

  1. 從此站點下載并安裝適用于您選擇的操作系統(tǒng) (OS) 平臺的Docker引擎:https://docs.docker.com/engine/install
  2. 要驗證 Docker 引擎是否已正確安裝,請運行名為“hello-world”的示例Docker鏡像。使用以下命令示例:
  • $ sudo docker run hello-world
  • 該命令將下載一個簡單的“hello-world”測試Docker鏡像,并在容器中運行它。因此,當容器運行時,它會打印消息并退出。

我們的 Docker 容器教程的下一部分的目標是將Docker容器設置為作為Helix 靜態(tài)代碼分析工具運行。有幾種方法可以配置 Docker 鏡像以支持不同的編碼合規(guī)性模塊,例如MISRAAUTOSARCWECERT和靜態(tài)代碼掃描工具等。

但是,在本教程中,我將僅演示如何使用一些重要組件構建特定的 Docker 鏡像,我們將在Docker容器中將這些組件用作Helix QAC工具 (DaaQT)。

此外,我將討論在運行分析掃描工具時如何處理項目數(shù)據(jù)配置的持久性,以便您可以將Helix QAC項目規(guī)范和項目支持配置文件存儲在docker容器之外,例如prqa項目文件夾和pqraproject.xml.支持的文件。

即使 Docker 容器執(zhí)行完成并關閉,對這些文件所做的任何更改都將保持不變。從docker執(zhí)行上的生成到生成的任何生成腳本更改都將輸出到主機上映射的外部項目文件夾,并保持持久性。

第 II 部分:創(chuàng)建、生成和運行

首先,讓我們確定我選擇用于構建 docker 鏡像的一些組件及其基本說明。

  • Helix QAC-2022.2 (C/C++靜態(tài)分析解析器
  • ASCM-3.3.0(AYTOSARC++14 編碼合規(guī)性)
  • M3CM-3.3.0 (MISRAC 2012 編碼合規(guī)性)
  • MCPP-2.3.0(MISRAC++ 2008 編碼合規(guī)性)
  • CERTCCM-2.3.0(對C的安全編碼標準支持)
  • CERTCCPCM-2.3.0(支持 CPP 的安全編碼標準)

接下來,下載您試用(或已購買)的Helix QAC解析器工具和編碼合規(guī)性模塊,并將這些安裝文件放在主機上的已知文件夾位置。

  • 在我的示例中,將有六個文件(一個解析器工具文件和五個編碼合規(guī)性模塊)。

接下來,創(chuàng)建一個docker構建腳本文件。例如,我將文件命名為“qacDockerfile”,沒有文件擴展名(默認名稱為“dockerfile”)。docker引擎將使用此文件創(chuàng)建docker鏡像。基本上,它有一個命令列表,可以發(fā)送給docker引擎,以自上而下的順序執(zhí)行它們。。

然后將這些文件(包括qacDockerfile)放在DaaQT文件夾中。這些是生成此docker鏡像所需的唯一文件。另外,請注意,我已經將它們放在“vDockerBuilds/DaaQT”文件夾下。

以下是“qac文檔”腳本文件的內容以及一些說明。

poYBAGNcjLeAG6ZkAAFUV0h0ga4843.png

  • 第 1 行是使用Ubuntu 22.04作為基本鏡像開始的。
  • 第 4 行至第7行使Ubuntu操作系統(tǒng)保持最新狀態(tài),并允許時區(qū)設置。
  • 第 10 行是可選的,但建議添加這些有用的工具,因為Ubuntu基礎鏡像是準系統(tǒng)鏡像。
  • 第 15 行將安裝基本的構建工具、gnu編譯器依賴項和任何支持文件。此步驟對于編譯器工具鏈使用需求會有所不同。但是,在我的示例案例中,此圖像將使用gcc/g++ 11編譯器。
  • 第 19 行和第20行指示Docker引擎創(chuàng)建一個名為“QacWorkspace”的工作目錄,所有子順序命令都將使用該目錄。
  • 第 25 行將所有安裝文件的權限更改為可執(zhí)行文件。
  • 第 28 行以靜默模式安裝Helix-QAC解析器工具并接受許可協(xié)議。
  • 第 31 行至第35行以靜默模式安裝選定的編碼合規(guī)性模塊,并接受許可協(xié)議。
  • 第 38 行正在清理安裝文件,以使docker鏡像盡可能小的占用空間。

接下來,要構建 docker 鏡像,我們需要運行以下命令:

$> docker build --pull --no-cache -f qacDockerfile -t qacscatools:22v2.

  • 拉取和無緩存參數(shù)是為了確保它始終獲取最新的 ubuntu 鏡像,并從頭開始構建docker鏡像。
  • -f 是qac Docker文件名稱,默認情況下,原始名稱是dockerfile。
  • -t 是格式“名稱:標簽”,因此名稱是“qacscatools”,標簽是“22v2”,以指示使用了哪個Helix-QAC工具版本。
  • 不要忘記末尾的“點”,這表明它是一個本地目錄。

構建鏡像過程完成后,您可以看到最后兩行消息,這些消息指示寫入文件并標記鏡像。若要驗證生成是否成功,請運行以下命令以顯示所有可用 Docker 鏡像的列表。

  • $>docker images

pYYBAGNcjLeAHEgvAADufgUifBw315.png

(注意:在上圖中,圖像標記 ID 為bd8c9d08dc4d。)

第三部分:在本地項目上運行 DaaQT

在使用此 docker 容器化鏡像(Docker作為QAC工具– DaaQT)在本地桌面項目上運行任何靜態(tài)代碼分析之前,我們需要確保可以訪問許可證服務器以獲得使用該工具的權限。

在我的示例中,我將使用外部遠程 Reprise 許可證管理服務器來請求要使用的許可證。

首先,我們需要創(chuàng)建一個本地項目運行腳本,該腳本知道在何處以及如何訪問遠程 Reprise 許可證服務器。此項目運行腳本還必須知道Helix QAC Dashboard服務器所在的位置,以便在分析運行完成后上載項目診斷消息結果。

讓我們回顧一下名為“runQACSCA.sh”的腳本文件及其內容。我將逐步提供一些關于它的作用的解釋。

poYBAGNcjLeALLVOAAFLg9ieNaU012.png

  • 第 3 行是對桌面計算機上項目文件夾名稱的引用。
  • 第 7 行是Helix QAC Dashboard服務器上的項目持有者的名稱,用于上載診斷消息和項目信息
    (注意:第 8 行可用于與本地文件夾名稱匹配。)
  • 第 9 行到第11行是有關Helix QAC Dashboard服務器的信息,例如URL地址(或FQDN)、服務器端口和許可證服務器端口。
  • 第 14 行是本地桌面項目工作區(qū)名稱“服務器URL地址”(或FQDN)、服務器端口和“許可證服務器端口”。
  • 第 15 行和第16行引用了Helix QAC解析器工具所在的內部docker鏡像,以及映射項目工作區(qū)位置。
  • 第 19 行用于使Docker與許可證服務器通信,以請求工具許可證以供使用。
  • 第 25 行將Docker鏡像設置為映射的項目工作區(qū)所在的正確入口點。
  • 第 28 行到第29行是選擇要用于項目的規(guī)則配置文件之一。這些默認文件名是為特定規(guī)則組配置標識的。您可以通過合并任何一個或多個規(guī)則配置文件來創(chuàng)建自己的客戶RCF文件,但是,自定義RCF文件需要在Helix QAC桌面GUI應用程序中完成,然后才能使用。此外,新的自定義名稱需要與默認文件名不同。
  • 第 34 行和第35行用于映射到要使用的編譯器工具鏈。對于我的例子,我已經映射到使用任何一個GNU C/CPP 11.2版本。
  • 第 38 行是創(chuàng)建PRQA項目配置并設置要求項目配置。
  • 第41行允許Helix QAC監(jiān)控和跟蹤如何使用其命令在本地構建項目的方式。
  • 如果項目需要執(zhí)行一些關系跨模塊分析 (RCMA) 和/或多線程分析 (MTA),則通常使用第44行和第45行。
  • 第 47 行至第49行是選擇一個編碼合規(guī)性模塊,用于滿足您的編碼合規(guī)性需求。請確保此設置與第28行到第31行的RCF設置匹配。
  • 第 52 行是使用上述所有配置和設置參數(shù)對項目執(zhí)行靜態(tài)代碼分析。
  • 第55行是將項目分析掃描結果上傳到Helix QACDashboard服務器,并將其放在項目支架中。上載的信息是包含診斷消息和項目配置設置的源代碼文件。

運行以下 docker 命令,這些命令會將本地項目卷映射到docker項目卷,以便保留分析數(shù)據(jù)文件。請密切注意ENTRYPOINT參數(shù),其中腳本文件“runQACSCA.sh”將從項目根文件夾執(zhí)行。

以下是帶有一些解釋的Docker命令:

  • docker run --rm -it -v ~/ProjectsSandbox/MyCppCodeQac:/QacWorkspace/MyCppCodeQac--entrypoint=/QacWorkspace/MyCppCodeQac/runQACSCA.sh qacscatools:22v2“run”,就是執(zhí)行。
  • “-it”以交互方式運行Docker(所以你會得到一個帶有STDIN的偽TTY)。
  • “--rm”使Docker在容器退出時自動將其刪除。
  • “-v”表示卷映射本地主機卷:DockerVolume。
  • “--entrypoint”表示登錄時從哪里開始,命令行開始運行帶有說明內容的位置/file_name.sh。

您還可以使用 shell 腳本來運行它,而不必記住在命令行上鍵入所有這些參數(shù)。除了不必記住所有這些細節(jié)之外,這還允許我們對腳本文件進行最小的更改,以適應其他類似的項目。

對于我的示例,我創(chuàng)建了一個名為“runDaaQT.sh”的shell腳本。

pYYBAGNcjLeAE2Q8AADaAM2EIso717.png

顯示 docker 命令行用法的屏幕截圖。

pYYBAGNcjLeAOlV1AAFRbfFzBB4066.png

顯示 shell 腳本用法的屏幕截圖。

poYBAGNcjLiAZpSiAAGK6m0TMuM737.png

(可選)還可以為 CMakeNinja 項目運行此Docker容器,它的命令行與之前演示的項目類似。此項目使用 CMake 和Ninja命令行構建系統(tǒng)。

要使用類似的命令行或 shell 腳本文件,您需要在命令行中對正確項目卷 (CMakeNinja) 名稱的命令語法進行一些編輯,如下所示:

$> docker run --rm -it -v ~/QacProjectsSandbox/CMakeNinja:/QacWorkspace/CMakeNinja--entrypoint=/QacWorkspace/CMakeNinja/runQACSCA.sh qacscatools:22v2

pYYBAGNcjLiATXOMAANFyGEIUiY926.png

CMakeNinja項目的命令行用法截圖。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 容器
    +關注

    關注

    0

    文章

    495

    瀏覽量

    22061
  • Docker
    +關注

    關注

    0

    文章

    458

    瀏覽量

    11856
收藏 人收藏

    評論

    相關推薦

    Helix QAC 2024.3新特性速覽

    Helix QAC 2024.3 附帶適用于?Windows?和?Linux?的基于?Qt?的新安裝程序,增強了對Validate SAML/OIDC?身份驗證的支持。此版本還包括對某些環(huán)境的 Dataflow 穩(wěn)健性的改進,
    的頭像 發(fā)表于 11-06 15:42 ?266次閱讀
    <b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2024.3新特性速覽

    Docker運行環(huán)境安裝

    、發(fā)布、測試和部署,可以幫助開發(fā)人員最新版本代碼應用到生產環(huán)境中。 Docker可以安裝在多個平臺中,包括Mac、Windows和Linux。不過,生產環(huán)境還是推薦在Linux上運行,以下以主流的Linux操作系統(tǒng)(CentO
    的頭像 發(fā)表于 10-29 11:28 ?217次閱讀

    代碼靜態(tài)測試工具Helix QAC 2024.2新發(fā)

    Helix QAC 2024.2 帶來了新的特性和功能,為開發(fā)過程增加了靈活的選項。用戶使用新的 CI 分析通過 Validate 獲得完整的 CI 集成支持,從而輕松管理 CI/CD 更改分析結果加快測試反饋速度,
    的頭像 發(fā)表于 08-05 17:40 ?367次閱讀
    代碼靜態(tài)測試工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2024.2新發(fā)

    ARM平臺實現(xiàn)Docker容器技術

    下載鏡像運行容器的方法。1 Docker安裝1.1 安裝方法(1)安裝依賴包 打開Ubuntu,確保Ubuntu可正常訪問互聯(lián)網(wǎng),執(zhí)行如下命令安裝
    發(fā)表于 07-25 14:36

    EC900安裝DSA,通過ip地址訪問DSA配置頁面

    /user/ 三、創(chuàng)建容器 根據(jù)導入的 debian 鏡像創(chuàng)建容器,指定--restart=always參數(shù)用于開機 自啟動 docker
    發(fā)表于 07-24 06:56

    ARM平臺實現(xiàn)Docker容器技術

    T113-i工業(yè)核心板在支持Docker后,其性價比還將進一步提升!圖2基于T113-i平臺實現(xiàn)Docker容器技術 如下為基于全志T113-i工業(yè)平臺,演示Docker安裝、構建鏡像
    發(fā)表于 07-17 11:05

    關于Docker 的清理命令集錦

    # 殺死全部正在運行容器. alias dockerkill='docker kill $(docker ps -a -q)' # 刪除所
    的頭像 發(fā)表于 06-13 15:56 ?384次閱讀

    代碼靜態(tài)測試工具 Helix QAC 2024.1版新功能解讀

    Helix QAC 2024.1改進了對C++20和C23語言特性的支持,增加了分析使用多個編譯器的項目的新功能。此外,Validate增強了對于搜索功能和角色權限的用戶體驗,并且包括一個
    的頭像 發(fā)表于 04-25 12:32 ?614次閱讀
    代碼靜態(tài)測試工具 <b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2024.1版新功能解讀

    Docker容器技術的安裝和使用

    通過Docker,開發(fā)人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性和可移植性。它也使得應用程序的部署更加靈活和高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他
    發(fā)表于 04-16 11:24 ?323次閱讀
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術的安裝和使用

    ARM平臺實現(xiàn)Docker容器技術

    什么是Docker? (1)Docker的架構 Docker是一個開源的應用容器引擎,讓開發(fā)者可打包他們的應用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windo
    的頭像 發(fā)表于 03-07 13:48 ?811次閱讀
    ARM平臺實現(xiàn)<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術

    如何將LED連接到Arduino板使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板使其閃爍。
    的頭像 發(fā)表于 02-11 10:53 ?2224次閱讀
    <b class='flag-5'>如何將</b>LED連接到Arduino板<b class='flag-5'>并</b>使其閃爍

    如何將PSOC4程序移至RAM運行它?

    如何將 PSOC4 程序移至 RAM 運行它? PSOC CREATOR 里面有套路嗎,謝謝。
    發(fā)表于 01-25 08:04

    RK3568-Docker容器部署方法說明

    RK3568-Docker容器部署方法說明
    的頭像 發(fā)表于 01-22 10:12 ?1406次閱讀
    RK3568-<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法說明

    代碼靜態(tài)測試工具Helix QAC 2023.4新發(fā)布

    Helix QAC 2023.4 為新的 MISRA C++:2023 指南推出了 100% MISRA C++:2023? 規(guī)則覆蓋率。此版本還包括擴展的 C++20 語言支持、數(shù)據(jù)流分析的性能改進以及整個產品中的許多產品體驗增強功能。
    的頭像 發(fā)表于 01-13 12:25 ?503次閱讀
    代碼靜態(tài)測試工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.4新發(fā)布

    Helix QAC—軟件靜態(tài)測試工具

    Helix QAC是Perforce公司(原PRQA公司)產品,主要用于C/C++代碼的自動化靜態(tài)分析工作,可以提供編碼規(guī)則以及信息安全相關檢查、代碼質量度量、軟件結構分析、測試結果管理等功能
    的頭像 發(fā)表于 01-10 17:35 ?670次閱讀
    <b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>—軟件靜態(tài)測試工具
    主站蜘蛛池模板: 九九热免费在线观看| 中国成人在线视频| 亚洲综合久久久久久888| 欧美日韩一级视频| 亚洲小视频| 黄色hd| 新天堂| 丁香六月色婷婷综合网| 黑色丝袜美美女被躁视频| 国产男女免费视频| 欧美二级黄色片| 天天做天天爱天天做天天吃中| 欧美激情αv一区二区三区| 五月婷婷丁香综合网| 丁香花高清在线观看| 国产高清免费在线观看| 亚洲成a人在线播放www| 狠狠色综合久久婷婷| 国产重口老太和小伙乱视频| 亚洲色图狠狠干| 国产三级精品三级| 欧美人与物另类| 日本三级日本三级日本三级极| 午夜大片免费完整在线看| 丝袜美腿一区| 久久久久999| 99精品福利| 四虎成人影院网址| 天天爽夜夜爽人人爽| 男啪女r18肉车文| 好男人社区在线观看www| 456成人网| 日本成人在线网址| 乱人伦xxxx国语对白| 五月婷亚洲| 窝窝午夜看片| 永久黄网站色视频免费| www.激情五月.com| 美女免费视频一区二区三区| 户外露出精品视频国产| 黄视频网站入口|