前言
jenkins在软件开发项目中具有举足轻重的低危,是实现CI/CD的尖兵利器,很值得去掌握及应用
构建含有maven、node、npm的jenkins镜像
目录结构
~]# tree -aCg /data/jenkins/
/data/jenkins/
|-- [root ] apache-maven-3.6.2-bin.tar.gz
|-- [root ] Dockerfile
|-- [root ] node-v13.0.0-linux-x64.tar.gz
`-- [root ] punish.sh
0 directories, 4 files
- 注:
相关的tar.gz文件,请自行下载
编辑Dockerfile文件
jenkins]# cat Dockerfile
FROM jenkins/jenkins
MAINTAINER cangqiong
USER jenkins
ADD apache-maven-3.6.2-bin.tar.gz /opt/
ADD node-v13.0.0-linux-x64.tar.gz /opt/
RUN ln -s /opt/apache-maven-3.6.2/bin/mvn /usr/bin/mvn \
&& ln -s /opt/node-v13.0.0-linux-x64/bin/node /usr/bin/node \
&& ln -s /opt/node-v13.0.0-linux-x64/bin/npm /usr/bin/npm \
&& ln -s /opt/node-v13.0.0-linux-x64/bin/npx /usr/bin/npx
生成相关的jenkins镜像
cat > /data/jenkins/punish.sh <<-EOF
#!/usr/bin/env bash
NAME=techsharearea
TAG=jenkins:v1
TAG_LOCAL=${NAME}/${TAG}
docker build -t ${TAG_LOCAL} .
docker push ${TAG_LOCAL} # 推送至dockerhub镜像仓库
EOF
构建镜像
bash /data/jenkins/punish.sh
部署jenkins服务
docker run \
-d \
-p 8080:8080 \
--restart always \
--name jenkins \
-v /opt/jenkins:/var/jenkins_home \
techsharearea:jenkins:v1
结语
… …