溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web開發在流水線中如何使用容器進行編譯構建

發布時間:2021-09-06 15:10:59 來源:億速云 閱讀:231 作者:小新 欄目:web開發

這篇文章主要為大家展示了“web開發在流水線中如何使用容器進行編譯構建”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“web開發在流水線中如何使用容器進行編譯構建”這篇文章吧。

 配置DockerInDocker

web開發在流水線中如何使用容器進行編譯構建

配置JenkinsMaster掛載Docker

docker run --name jenkins -itd \        -p 8081:8080 \        -p 50000:50000 \        -v ~/jenkins:/var/jenkins_home \        -v /var/run/docker.sock:/var/run/docker.sock \        -v /usr/local/bin/docker:/usr/bin/docker \        jenkins/jenkins:lts

解決權限問題/以root用戶運行

docker exec -it -u root jenkins bash usermod -aG root jenkins  id jenkins uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins),0(root),1(daemon)

調試流水線

  1. pipeline { 

  2.     agent { 

  3.         docker {  

  4.             image 'maven:3.6.3-jdk-8'  

  5.             args '-v $HOME/.m2:/root/.m2' 

  6.         } 

  7.     } 

  8.     stages { 

  9.         stage('Build') { 

  10.             steps { 

  11.                 sh 'mvn -v' 

  12.             } 

  13.         } 

  14.     } 


Started by user admin Replayed #40 Running in Durability level: MAX_SURVIVABILITY [Pipeline] Start of Pipeline [Pipeline] node Running on Jenkins in /var/jenkins_home/workspace/test [Pipeline] { [Pipeline] isUnix [Pipeline] sh + docker inspect -f . maven:3.6.3-jdk-8 . [Pipeline] withDockerContainer Jenkins seems to be running inside container 5373edddcdadb63df5e5c6ed7f6149719ad749536242f10c06cbceca511a9898 $ docker run -t -d -u 1000:1000 -w /var/jenkins_home/workspace/test --volumes-from 5373edddcdadb63df5e5c6ed7f6149719ad749536242f10c06cbceca511a9898 -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** maven:3.6.3-jdk-8 cat $ docker top 01102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7d62836e1df2 -eo pid,comm [Pipeline] { [Pipeline] stage [Pipeline] { (Test) [Pipeline] sh + mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/share/maven Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/local/openjdk-8/jre Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "4.19.76-linuxkit", arch: "amd64", family: "unix" [Pipeline] } [Pipeline] // stage [Pipeline] } $ docker stop --time=1 01102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7d62836e1df2 $ docker rm -f 01102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7d62836e1df2 [Pipeline] // withDockerContainer [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS

每個階段指定不同的Docker容器運行

pipeline {     agent none     stages {         stage('ServiceBuild') {             agent {                 docker {                      image 'maven:3.6.3-jdk-8'                      args '-v $HOME/.m2:/root/.m2'                 }             }             steps {                 sh 'mvn -v  && sleep 15'             }         }                stage('WebBuild') {             agent {                 docker {                      image 'node:7-alpine'                      args '-v $HOME/.m2:/root/.m2'                 }             }             steps {                 sh 'node -v  && sleep 15'             }         }     } }

前端流水線

pipeline {     agent none     stages {         stage('WebBuild') {             agent {                 docker {                      image 'node:10.19.0-alpine'                      args '-u 0:0 -v /var/jenkins_home/.npm:/root/.npm'                 }             }             steps {                 sh """                     id                      ls /root/.npm                      ls /root/ -a                     npm config set unsafe-perm=true                     npm config list                     npm config set cache  /root/.npm                     #npm config set registry https://registry.npm.taobao.org                     npm config list                     ls                      npm install  --unsafe-perm=true && npm run build  && ls -l dist/ && sleep 15                  """             }         }     } }

FAQ

npm構建權限問題:使用root用戶構建。設置容器運行用戶 -u 0:0

npm打包慢問題:

2.1 掛載緩存卷

-v /var/jenkins_home/.npm:/root/.npm

2.2 設置淘寶源

npm config set registry https://registry.npm.taobao.org

以上是“web開發在流水線中如何使用容器進行編譯構建”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女