<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # :-: jenkins+gitlab+docker容器化工程自動化部署 ![](https://img.kancloud.cn/d7/fc/d7fc48ab3ea5ce585a027ca8270c46fa_800x467.png) 在軟件開發過程中,如果我們每一次提交的代碼都能夠進行一次完整的編譯、測試、打包、發布,就能及早發現問題、及早修復,在保證代碼質量的同時讓產品快速迭代。這就是持續集成(CI)、持續部署(CD)的好處。 目前 CI/CD 的方案有很多,本文將展示一個用 Docker + Jenkins 實現的完整過程。 ## 本文的 CI/CD 流程 開發人員提交代碼到自己的分支并 push 到遠程倉庫 `==>` 觸發遠程倉庫(GitHub/GitLab)的 Webhooks `==>` Jenkins 接到通知自動執行之前準備好的一個流程(克隆代碼,對代碼進行編譯、測試、打包,沒有問題后會執行 docker 命令進行鏡像構建)`==>` 最終發布到測試服務器中。 ## 環境說明 * 本文選用的測試環境是阿里云的服務器,所以全程也是在服務器上操作的,`無需本地安裝 docker`,當然在本地操作也是可以的。 * 本文選用的遠程代碼庫是 `Gitlab` 倉庫。 * 本文中所用的 `Jenkins` 也是用的 docker 版。 步驟1: ``` 創建springboot項目 ``` 步驟2: #### 創建Jenkins項目maven類型 步驟3: ``` 配置 Webhooks ``` 步驟4: #### 編寫自動任務腳本進行 CI/CD ![](https://img.kancloud.cn/1c/ba/1cbafaae85b2b107277f6b35d7312199_935x397.png) ``` #!/bin/bash set fileformat=unix APP_PATH="/usr/hj/apps/hmall-service-auth-jwt" APP_NAME="hmall-service-auth-jwt" IMAGE_NAME=${APP_NAME} CONTAINER_NAME=${APP_NAME} cp /var/lib/jenkins/workspace/${APP_NAME}/target/${APP_NAME}.jar ${APP_PATH} echo "刪除之前的鏡像和容器" docker stop ${CONTAINER_NAME} docker rm ${CONTAINER_NAME} docker rmi ${IMAGE_NAME} echo "構建鏡像" cd ${APP_PATH} docker build -t ${IMAGE_NAME} . echo "發布應用" docker run -d -p 9001:9001 -e "spring.profiles.active=test" ${APP_NAME} --name ${CONTAINER_NAME} ${IMAGE_NAME} ``` ![](https://img.kancloud.cn/82/51/8251394b5abf91b541ce7aff800a0f15_695x575.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看