配置DockerInDocker配置JenkinsMaster挂载Dockerdockerrun--namejenkins-itd\-p8081:8080\-p50000: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用户运行dockerexec-it-urootjenkinsbashusermod-aGrootjenkinsidjenkinsuid=1000(jenkins)gid=1000(jenkins)groups=1000(jenkins),0(root),1(daemon)调试管道pipeline{agent{docker{image'maven:3.6.3-jdk-8'args'-v$HOME/.m2:/root/.m2'}}stages{stage('Build'){steps{sh'mvn-v'}}}}StartedbyuseradminReplayed#40RunninginDurabilitylevel:MAX_SURVIVABILITY[Pipeline]StartofPipeline[Pipeline]nodeRunningonJenkinsin/var/jenkins_home/workspace/test[Pipeline]{[Pipeline]isUnix[Pipeline]sh+dockerinspect-f.maven:3.6.3-jdk-8.[Pipeline]withDockerContainerJenkinsseemstoberunninginsidecontainer5373edddcdadb63df5e5c6ed7f6149719ad749536242f10c06cbceca511a9898$dockerrun-t-d-u1000:1000-w/var/jenkins_home/workspace/test--音量es-from5373edddcdadb63df5e5c6ed7f6149719ad749536242f10c06cbceca511a9898-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-8cat$dockertop01102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7d62836e1df2-eopid,comm[管道]{[管道]阶段[管道]{(测试)[管道]sh+mvn-vApacheMaven3.6.3(cecedd343002696d0abb50b32b541b8a6ba2883f)Mavenhome:/usr/share/mavenJavaversion:1.8.0_242,vendor:OracleCorporation,runtime:/usr/local/openjdk-8/jreDefaultlocale::UTF-encoding8OSname:"linux",version:"4.19.76-linuxkit",arch:"amd64",family:"unix[Pipeline]}[Pipeline]//stage[Pipeline]}$dockerstop--time=101102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7dckerd6223$dockerd6223$-f01102f26f8957fc7c46d0f9d1118e38316e313707357cdc5332c7d62836e1df2[管道]//withDockerContainer[Pipeline]}[Pipeline]//node[Pipeline]EndofPipelineFinished:SUCCESS每个stage指定不同的Docker容器来运行pipeline{agentnonestages{stage('ServiceBuild'){agent{docker{image'maven:3.6.3-jdk-8'args'-v$HOME/.m2:/root/.m2'}}steps{sh'mvn-v&&sleep15'}}stage('WebBuild'){agent{docker{image'node:7-alpine'args'-v$HOME/.m2:/root/.m2'}}steps{sh'node-v&&sleep15'}}}}前端管道{agentnonestages{stage('WebBuild'){agent{docker{image'节点:10.19.0-alpine'args'-u0:0-v/var/jenkins_home/.npm:/root/.npm'}}steps{sh"""idls/root/.npmls/root/-anpmconfigsetunsafe-perm=truenpmconfiglistnpmconfigsetcache/root/.npm#npmconfigsetregistryhttps://registry.npm.taobao.orgnpmconfiglistlsnpminstall--unsafe-perm=true&&npmrunbuild&&ls-ldist/&&sleep15""""}}}}FAQnpm构建权限问题:使用root用户构建。setcontainerrunninguser-u0:0npmpackagingslow问题:2.1mountcachevolume-v/var/jenkins_home/.npm:/root/.npm2.2settaobaosourcenpmconfigsetregistryhttps://registry.npm。淘宝网
