Jenkins流水线基础

Jenkins流水线基础

1、docker 环境安装

  • 安装命令
    docker run \
      -u root \
      --rm \
      -d \
      -p 8080:8080 \
      -p 50000:50000 \
      -v jenkins-data:/var/jenkins_home \
      -v /var/run/docker.sock:/var/run/docker.sock \
      jenkinsci/blueocean
    
  • 进入容器环境
    docker exec -it containerId bash
    
  • 根据页面 http://localhost:8080/ 提示,获取管理员密码
  • 安装相关插件

2、配置流水线

  • 创建多分支流水线(设置代码仓库、访问用户名、密码)

  • 项目根目录下创建Jenkinsfile文件

    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    echo 'Building...'
                    sh './mvnw package'
                }
            }
            stage('Build Image') {
                steps {
                    echo 'Build Image...'
                    sh '''
                    docker build -f Dockerfile -t *****/*****:latest .
                    docker login -u **** -p *****
                    docker push *****/*****:latest
                    docker rmi *****/*****:latest
                    '''
                }
            }
            stage('Deploy') {
                steps {
                    echo 'Deploying....'
                    sh '''
                    docker stack deploy -c docker-compose.yml ******
                    '''
                }
            }
        }
    }
    
  • 使用maven-wrapper
    因为jenkins运行环境中不一定安装maven,或者为了避免更多的环境依赖,在项目目录下安装maven-wrapper maven-wrapper,通过以下命令安装,安装完成后,会在根目录下看到.mvn文件夹,以及mvnw运行文件。

    mvn -N io.takari:maven:wrapper
    
  • 关于在pom.xml文件中引入 maven仓库私服的问题
    如果需要通过指定的setting.xml运行,可通过以下命令

    ./mvnw clean package -s build/settings.xml
    

    或者在pom.xml文件中加入如下配置

    <repositories>
        <repository>
            <id>maven-public</id>
            <name>maven-public</name>
            <url>http://*******/repository/maven-public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    

你可能感兴趣的:(DevOps)