Docker 学习之路-从入门到放弃-Jenkins:4-1

这里是对Jenkins配置的补充

首先总结一下,Jenkins 运行jar 服务,配置主要包括两部分:jdk 和 maven 以及gitlab或云存储平台(阿里云效)。

1.添加凭证。这个拉取代码时,需要验证。

2.配置全局变量

jdk 如果可以选择自带的jdk版本。可以跳过。这里讲解的是没法选择自带java版本。找不到插件的情况。怎么配置java。

docker exec -it jenkins bash

docker exec -it -u root jenkins bash

java -version

echo $JAVA_HOME

如果没有找到,说明你这里没有给Jenkins账户配权限,可以切换成root账户查询。一般会自带一个jdk

根据提示的路径,配置全局的配置即可。

maven 配置自动安装一个版本即可。基本都不需要怎么管

3.docker jenkins 内部 配置 docker 以及docker-compose

如果你的jar 不需要docker 、docker-compose ,则跳过。

复制代码
Jenkins 安装docker 以及 docker-compose 
进入 Jenkins 容器内
# docker exec -it -u root jenkins bash 或 # docker exec -it jenkins bash 
docker exec -it jenkins bash 
apt update
# 安装docker客户端
apt install -y docker.io
# 安装docker compose v2
apt install -y docker-compose-plugin
# 软链接,让docker compose命令可用
ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
# 验证
docker version
docker compose version

4.配置流水线

复制代码
pipeline {
    agent any
    tools { maven 'M3' }
    stages {
        stage('验证Maven配置') {
            steps {
                sh '''
                    echo "=== 流水线里的Maven路径 ==="
                    which mvn
                    echo "=== Maven读取的settings.xml路径 ==="
                    mvn help:effective-settings
                    echo "=== jdk ==="
                    java -version
                '''
            }
        }
        stage('拉取代码') {
            steps {
                git url: 'https://codeup.aliyun.com/69ec043e43d4694d6a52f05d/reading-tools/micro.git',
                    credentialsId: 'huang-aliyunxiao',
                    branch: 'dev'
            }
        }
        stage('打包 mmx-gateway') {
            steps {
                sh 'mvn package -DskipTests -pl mmx-gateway -am'
            }
        }
        stage('复制 jar ') {
            steps {
                sh '''
DEST_DIR=/docker/background
mkdir -p $DEST_DIR/mmx-gateway

# 复制 jar
cp mmx-gateway/target/*.jar $DEST_DIR/mmx-gateway/mmx-gateway.jar

                '''
            }
        }
        stage('部署重启') {
            steps {
                sh '''
cd /docker/background
docker compose down mmx-gateway
docker compose up -d mmx-gateway
                '''
            }
        }
    }
}