[Docker implementa CI/CD de implantação de teste ---- estilo livre e operação de CD de pipeline (6)]

12. Operação de CD de estilo livre

        Agora, após modificar o código do projeto atual no GitLab, 主干分支 origin/master 上的代码打上一个 Tag,例如 v1.0.0。envie-o para o branch principal origin/master do GitLab. 此时再给项目打上一个 Tag, 例如 v2.0.0。Desta forma, duas Tags são marcadas no branch principal origin/master do projeto hellojenkins.
        E Jenkins pode construir projetos separadamente de acordo com diferentes tags do código no branch principal origin/master. Implementar entrega contínua e implantação contínua de projetos.

Versão V1.0.0 de lançamento

Modifique o código e envie-o

Insira a descrição da imagem aqui

Marcar projetos no GitLab

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Versão V2.0.0 de lançamento

As etapas são as mesmas acima, mas não serão demonstradas aqui.

Insira a descrição da imagem aqui

Parâmetros da tag de configuração do Jenkins

        Como o projeto no GitLab possui tag 标签, Jenkins precisa permitir que o usuário escolha qual tag de projeto construir ao construir o projeto. Portanto, é necessário configurar no Jenkins Git 参数 tagcomo opção do usuário.

Adicionar parâmetros Git

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Adicionar comando de checkout

Em seguida, continue a abrir a página atual para encontrar as etapas de construção.

Insira a descrição da imagem aqui

        Em seguida, clique nas três barras no canto superior esquerdo, arraste para o topo, git checkout $hjtago que significa mudar para o rótulo especificado, e você poderá ver o efeito mais tarde

Insira a descrição da imagem aqui

Modificar configuração do comando de compilação

        Em seguida, continue a rolar para baixo na página atual para encontrar Build Steps o comando de construção adicionado originalmente. $hjtag Adicione referências de variáveis ​​a todos os comandos que envolvem imagens . Em seguida, aplique salvar.

Insira a descrição da imagem aqui

Modificar configuração SSH

Send build artifacts over SSH Em seguida, continue a puxar para baixo a página atual, encontre aquela na         "operação pós-construção" Exec commande escreva a versão original codificada latest 修改为$hjtag.

Insira a descrição da imagem aqui

Implantar v1.0.0

reconstruir projeto

        Clique em Build Project novamente na página inicial da tarefa Build with Parameters e descubra que hjtag as opções foram adicionadas. V1.0.0 Escolha construir aqui

Insira a descrição da imagem aqui

resultado da compilação

Uma nova imagem v1.0.0 foi adicionada ao Harbor.

Insira a descrição da imagem aqui

A imagem v1.0.0 é adicionada ao servidor de destino e o contêiner está em execução.

Insira a descrição da imagem aqui

acesso ao navegador

Insira a descrição da imagem aqui

Implantar v2.0.0

reconstruir projeto

        Clique em Build Project novamente na página inicial da tarefa Build with Parameters e descubra que ela foi adicionada hjtag 选项. V2.0.0Escolha construir aqui e modifique o número da porta.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

acesso

Insira a descrição da imagem aqui

Implantar v3.0.0

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

13. Helloworld das tarefas do pipeline

        Pipelining é uma forma de Jenkins gerenciar o processo de construção do projeto. 其将项目的构建过程按照构建阶段进行非常清晰的划分显示. Os usuários podem 可视化操作方式visualizar e gerenciar facilmente várias etapas do processo de construção.

Olá Mundo

Criar uma nova tarefa de pipeline

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Depois de clicar em Construir agora, você verá a Visualização do palco.

Insira a descrição da imagem aqui

Modificar script do projeto

        Para entender melhor o script, o script do projeto hello workd é modificado aqui.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Script de manutenção do modo SCM

       SCM (Software Configuration Management) refere-se 软件配置管理ao gerenciamento e coordenação de código, documentos e outros elementos relacionados no processo de desenvolvimento de software.

Anexe Jenkinsfile ao código

        Cada projeto a ser construído piple 方式进行构建管理deve ter um 构建脚本. Ao usar o método de manutenção de script SCM, o nome do arquivo de script padrão é Jenkinsfile.
        Anexe um arquivo chamado Jenkinsfile ao diretório raiz do projeto no Idea. Em seguida, copie o conteúdo original do script para o arquivo. Para mostrar a diferença, o conteúdo do script é simplesmente modificado aqui.

pipeline {
    
    
    agent any

    stages {
    
    
        stage('阶段one') {
    
    
            steps {
    
    
                echo '阶段one构建成功 ---> SUCCESS'
            }
        }
        stage('阶段two') {
    
    
            steps {
    
    
                echo '阶段two构建成功 ---> SUCCESS'
            }
        }
        stage('阶段three') {
    
    
            steps {
    
    
                echo '阶段three构建成功 ---> SUCCESS'
            }
        }

    }
}

Insira a descrição da imagem aqui

Enviar alterações para o GitLab

Insira a descrição da imagem aqui

        Então você pode ver um arquivo Jenkinsfile adicional na página inicial do projeto GitLab. Em seguida, copie o endereço http do projeto.
Insira a descrição da imagem aqui

Configuração do Jenkins

       Na "Configuração" da tarefa do pipeline no Jenkins, 流水线选择 SCM 方式, SCM 选择 Gite cole o que você acabou de copiar GitLab 仓库地址aqui.

Insira a descrição da imagem aqui

reconstruir

        Após a reconstrução, você descobrirá que além dos nomes atualizados desses estágios, um novo estágio também foi adicionado Checkout SCM,即从 SCM 中检出脚本.

Insira a descrição da imagem aqui

14. Olájenkins de gerenciamento de pipeline

        Agora precisamos construir e gerenciar o projeto hellojks anterior por meio do pipeline. Então, 首先需要修改 Idea 中 的 Jenkinsfile 文件内容,然后再提交到 GitLab.

pipeline {
    
    
    agent any

    stages {
    
    
        stage('从Gitlab拉取代码') {
    
    
            steps {
    
    
                echo '从Gitlab拉取代码 ---> SUCCESS'
            }
        }
        stage('将项目打为jar包') {
    
    
            steps {
    
    
                echo '将项目打为jar包 ---> SUCCESS'
            }
        }
        stage('代码质量检测') {
    
    
            steps {
    
    
                echo '代码质量检测 ---> SUCCESS'
            }
        }
        stage('构建并推送镜像到Harbor') {
    
    
             steps {
    
    
                echo '构建并推送镜像到Harbor ---> SUCCESS'
            }
        }
        stage('通知目标服务器') {
    
    
             steps {
    
    
                echo '通知目标服务器 ---> SUCCESS'
            }
         }

    }
}

Insira a descrição da imagem aqui

reconstruir

        Reconstrua a tarefa hello_pipeline no Jenkins.

Insira a descrição da imagem aqui

Extrair código do GitLab

        Definição Git参数, defina um parâmetro Git na tarefa de pipeline no Jenkins, que ainda está publicada tag.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Sintaxe do pipeline

        Como definir instruções de comando específicas no arquivo de script do pipeline para realizar “从 GitLab 位取代码”“将项目 打为 jar 包”tarefas como esta?
        Os arquivos de script de pipeline têm sua própria sintaxe especial. No entanto, por meio da sintaxe do pipeline na tarefa de pipeline atual, as instruções de script que estão em conformidade com a sintaxe do script do pipeline podem ser geradas automaticamente.

Insira a descrição da imagem aqui

Gerar comando de script

A seguir, usaremos a sintaxe do pipeline para gerar a instrução "Puxar código do GitLab".

Primeiro copie o endereço do projeto do projeto GitLab.

Insira a descrição da imagem aqui

        Em seguida, selecione a sintaxe do pipeline no Jenkins “checkout:Check out from version control”e cole o endereço do projeto GitLab copiado nele Repository URL.

Insira a descrição da imagem aqui

        Clique em "Gerar script de pipeline" para gerar automaticamente a instrução de script correspondente na caixa de texto abaixo.

Insira a descrição da imagem aqui

Atualizar arquivo Jenkins

        Copie o script do pipeline gerado, grave-o Idea 中的 Jenkinsfile 的相应 stage{}中e envie-o ao GitLab.

Insira a descrição da imagem aqui

reconstruir

Recrie a tarefa e descubra que você pode selecionar a versão construída.

Insira a descrição da imagem aqui

Clique em Logs na fase "Pull Code" para ver os logs extraídos.

Insira a descrição da imagem aqui

Transforme o projeto em um pacote jar

Gerar comando de script

        Gere a instrução de script de "transformar o projeto em um pacote jar" por meio da sintaxe de script de pipeline no Jenkins

Insira a descrição da imagem aqui

Atualizar arquivo Jenkins

        Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中enviar.

Insira a descrição da imagem aqui

reconstruir

        Reconstrua a tarefa e clique “将项目打为 jar 包”阶段na camada superior Logspara vê-la maven 构建的日志.
Insira a descrição da imagem aqui

Inspeção de qualidade do código

Gerar comando de script

        Gere instruções de script de "inspeção de qualidade de código" por meio da sintaxe de script de pipeline no Jenkins.

Insira a descrição da imagem aqui

Atualizar arquivo Jenkins

        Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中enviar.
Insira a descrição da imagem aqui

reconstruir

        Recrie a tarefa e você “通过 SonarQube 进行代码检测”阶段中 点击 Logspoderá vê- la no nível superior SonarQube 代码检测的日志.

Insira a descrição da imagem aqui

        Então você pode ver um projeto recém-adicionado na página de gerenciamento do SonarQube hello_pipeline .

Insira a descrição da imagem aqui

Construa a imagem e envie-a para o Harbor

Definir variáveis ​​de ambiente no Jenkinsfile

        Adicionadas ao Jenkinsfile no Idea 环境变量, essas variáveis ​​serão utilizadas nos comandos de script gerados posteriormente.

 environment {
    
    
        harbor_user='admin'
        harbor_password='Harbor12345'
        harbor_host='192.168.40.138:8888'
        harbor_repo='jks'

    }

Gerar comando de script

        Gerado no Jenkins por meio da sintaxe do script do pipeline “推送镜像到 Harbor”的脚本语句. usado em instruções de script Jenkinsfile 中定义的环境变量.

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-leeching. Recomenda-se salvar a imagem e carregá-la diretamente (img-DzTj8Hmi-1691236468832)Insira a descrição da imagem aqui

Nota: Este é o pacote jar no diretório de destino, não há nova captura de tela.

mv target/*.jar docker/
cd docker
docker build -t ${JOB_NAME}:${ptag} .
docker login -u ${harbor_user} -p ${harbor_password} ${harbor_host}
docker tag ${JOB_NAME}:${ptag} ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}
docker image prune -f
docker push ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}

Atualizar arquivo Jenkins

        Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中enviar.
Insira a descrição da imagem aqui

reconstruir

        Reconstrua a tarefa e então você “构建镜像并推送到 Harbor”阶段中点 击 Logspoderá ver o registro do envio da imagem para o Harbor no nível superior.
Insira a descrição da imagem aqui

Neste momento, Jenkins主机você pode ver hello_pipeline a imagem que aparece.

Insira a descrição da imagem aqui

        Neste momento, verifique a página de gerenciamento do porto e você poderá vê-la jks 项目中新增加了 hello_pipeline 的仓库, 且仓库中具有 v1.0.0 的镜像.
Insira a descrição da imagem aqui

Notificar o servidor de destino

Adicionar parâmetro de número de porta

        Para habilitar os usuários 随时指定容器对外暴露的参数, isso está em "Configuração" na tarefa atual no Jenkins “参数化构建过程”中添加一个字符参数.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Gerar comando de script

        Gerado no Jenkins por meio da sintaxe do script do pipeline “通知目标服务器执行 deploy 脚本”的脚本语句. escolha sshPublisher:Send build artifacts over SSH,并从中找到目标服务器.

Insira a descrição da imagem aqui

Exec commandEm seguida , digite o comando a ser executado na         caixa a seguir para gerar um script de pipeline.

Insira a descrição da imagem aqui

deploy.sh $harbor_host $harbor_repo $JOB_NAME $ptag 8080 $export_port

Atualizar arquivo Jenkins

        Copie o script do pipeline gerado e Idea 的 Jenkinsfile 的相应 stage{}中grave-o no GitLab.

Insira a descrição da imagem aqui

reconstruir

        Reconstrua a tarefa e então você “通知目标服务器”阶段中点击 Logspoderá ver o registro do envio da imagem para o Harbor no nível superior.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

        Verifique a imagem no servidor de destino e descubra que a imagem correspondente não foi retirada do porto.

Insira a descrição da imagem aqui

Na verdade, é causado por variáveis ​​com aspas duplas

Insira a descrição da imagem aqui

Reconstrua novamente e extraia com sucesso

Insira a descrição da imagem aqui

Acesso bem-sucedido ao navegador

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_52589631/article/details/132123916
Recomendado
Clasificación