Jenkins部署
what:
where: Jenkins(ARM)
when: 2021/9/28
who: JRT
why: CI工程
relation:
DevOps思想
DevOps是一种思想或方法论,他涵盖开发,测试、运维整个过程! DevOps强调软件开发人员与测试、软件运维、质量保障(QA)部门之间有效的沟通与协作。 强调通过自动化的方法管理软件变更,软件集成。 使软件从构建到测试。发布更加快捷,可靠。最终按时交付软件。
发布流程
安装Jenkins
安装Jenkins
docker-compose -f jenkins.yml up
jenkins.yml内容
version: '3.6'
services:
devops-jenkins:
image: jenkins4eval/jenkins
container_name: devops-jenkins
user: root
restart: always
ports:
- 8080:8080
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /bin/docker:/usr/bin/docker
- /etc/sysconfig/docker:/etc/sysconfig/docker
- /data/app/jenkins_data:/var/jenkins_home
安装完成后查看日志,获取密码登录
[root@ecs02 apache-maven-3.8.1]# docker logs -f 8df252beb5ab
使用docker构建镜像,并推动到Harbor上,需要jenkins上安装以下几个插件
Git Parameter Docker docker-build-step
插入shell命令
#!/bin/bash
cp ../../dockerfile/Dockerfile ./
echo ${TAG}
var1=${TAG}
var2="`echo ${var1:0:8}`"
if [ $var2 = openeule ];then
var3=openeuler/openeuler
elif [[ $var2 = centos-8 ]];then
var3=centos:8
elif [[ $var2 = centos-7 ]];then
var3=centos:7
else
echo "分支名填写有误,环境暂不支持"
exit
fi
echo $var3
pack=$(date +"%Y%m%d%H%M%S")
#config=https://download.redis.io/releases/redis-6.2.4.tar.gz
#意思是在Dockerfile第一行插入“FROM 镜像地址”
sed -i "1i FROM $var3" Dockerfile
#将编译包的地址作为env 环境变量
sed -i "2i ENV config=$config" Dockerfile
docker build -t mirror:v1 .
docker run -itd --name $pack mirror:v1
echo "jrt"
docker logs -f $pack
docker logs $pack >a.txt
echo "finishjrt"
docker rm $pack
#docker rmi mirror:v1