Skip to content

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