Dia 27: Jenkins Declaration Pipeline com Docker
O dia 27 é onde Jenkins Pipelines se encontra com Docker. Vou quebrar isso passo a passo para concluir as duas tarefas (com comandos do shell e com a sintaxe do Docker Groovy). Tarefa-01: Jenkins Declarativo Pipeline usando SH (comandos shell) Aqui, executamos manualmente os comandos do Docker dentro do pipeline. Etapas: pipeline {agente qualquer estágio {STAGE (‘Build Docker Image’) {Etapas {sh ‘Docker Build -t MyApp: mais recente.’ }} estágio (‘Execute contêiner’) {etapas {// Se já estiver em execução, pare primeiro sh ” ‘Docker ps -q -filtro “name = myApp” | grep -q. && Docker Stop MyApp && Docker RM MyApp || True Docker Run -d – -name MyApp -p 8080: 8080 MyApp: mais recente ” ‘}}} post {sucessor {echo’ ✅ Docker Image e contêiner em execução! ‘ } falha {eco ‘❌ algo deu errado com o Docker Pipeline.’ }}} Digite o modo de tela cheia de tela cheia de tela cheia Docker Build -T MyApp: mais recente. → Construa sua imagem a partir do Dockerfile. Docker Run … → Executa o contêiner (para/remove um antigo para evitar erros de contêiner duplicados). Task-02: Jenkins Declaration Pipeline usando a sintaxe do Docker Groovy em vez de comandos de shell, o Jenkins Pipeline DSL fornece sintaxe do docker que lida com a limpeza automaticamente. Etapas: Pipeline {agente quaisquer estágios {STAGE (‘Construa e corra com o Docker DSL’) {Etapas {Script {// Puxe ou construa uma imagem def MyImage = Docker.build (“MyApp: mais recente”) // Correr dentro de um contêiner MyImage.inside {Sh ‘Echo “✅ Running Dent Docker” Echo “Python não instalado na imagem base” ‘}}}}}} Digite o modo de saída de tela cheia de tela cheia aqui está o que está acontecendo: Docker.build (“MyApp: mais recente”) → Construa a imagem do Dockerfile no Repo. .Inside {} → Executa suas etapas de construção/teste dentro do contêiner. Isso evita conflitos no nome do contêiner porque Jenkins limpa automaticamente. Comparação Task-1 (comandos SH): mais controle, mas propenso a conflitos de contêineres (precisa de parada manual/RM). Task-2 (Docker DSL): mais limpo, evita conflitos, recomendados para pipelines com várias construções. O objetivo desta tarefa é usar o seu Docker Build e executar o conhecimento do Docker Build – podemos usar o Sh ‘Docker Build. -t ‘No bloco de estágio do pipeline para executar o comando Docker Build. (Verifique se você está instalado com o Docker com permissões corretas. Docker Run: Podemos usar o SH ‘Docker Run -d’ no bloco de estágio do pipeline para construir o contêiner. Próximas etapas executam os dois dutos (Day27-Sh-Sh-Docker e Day27-DSL Docker Tobs). Confirme o Dipers está executando → Docker PS no servidor Jenkins.
Fonte
Publicar comentário