C/I Jenkins + .Net Core no Docker publicando na Azure

Introdução

Hoje em dia o processo de integração contínua é imprescindível para uma empresa conseguir uma entrega mais veloz para o cliente obter rapidamente novas features ou correções de bugs. Em algumas aplicações por dia são liberadas diversas versões, mas imagina ter que fazer esse processo manualmente, isso consumiria muito tempo e utilização de um profissional para isso.

Umas das funcionalidades do Jenkins é automatizar esse processo. Nesse tutorial irei focar na construção do docker do jenkins com .Net Core e a publicação de uma versão no Azure.

Passos

Criação do Projeto .Net Core

Executar Projeto .Net Core

Projeto

Publicar esse Código no Git Hub

Criação do DockerFile Jenkins + DotNet Core

Build Docker Image

docker build -t filipemot/jenkins_dotnet_core .

Docker Run

docker run -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock filipemot/jenkins_dotnet_core

Admin Password

Acessar

http://localhost:8080/

Unlock Jenkins

Customize Jenkins

Instalando Plugins

Criando User

Configurando Instância

Finalizando Instalação

Criar Novo Job

Selecione Pipeline e Defina um nome

Configura o Projeto

Jenkins Credenciais

Configure Pipeline

Criar Arquivo Jenkinsfile

Crie no Job as Variaveis da execução

  • res_group: Resouce Group
  • customersapiapp: Nome da Aplicação

Azure (Criar Serviço web)

Registar a Aplicação em “App registrations”

Instale o Plugins da Azure App Service e Configure a Credenciais no Jenkins

Adiciona Roles da Autorização no Azure

Executar Pipeline

Conclusão

O processo de integração contínua com Jenkins com Dotnet Core e Azure é bem tranquilo, seguindo todos os passos você não terá problema para atualizar o seu ambiente da Aplicação

C/I Jenkins + .Net Core no Docker publicando na Azure

Introdução

Hoje em dia o processo de integração contínua é imprescindível para uma empresa conseguir uma entrega mais veloz para o cliente obter rapidamente novas features ou correções de bugs. Em algumas aplicações por dia são liberadas diversas versões, mas imagina ter que fazer esse processo manualmente, isso consumiria muito tempo e utilização de um profissional para isso.

Umas das funcionalidades do Jenkins é automatizar esse processo. Nesse tutorial irei focar na construção do docker do jenkins com .Net Core e a publicação de uma versão no Azure.

Passos

Criação do Projeto .Net Core

Executar Projeto .Net Core

Projeto

Publicar esse Código no Git Hub

Criação do DockerFile Jenkins + DotNet Core

FROM jenkins/jenkins:lts-jdk11

# Switch to root to install .NET Core SDK

USER root

# Just for my sanity… Show me this distro information!

RUN uname -a && cat /etc/*release

# Based on instructiions at https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x

# Install depency for dotnet core 2.

RUN apt-get update \

&& apt-get install -y — no-install-recommends \

curl libunwind8 gettext apt-transport-https && \

curl https://packages.microsoft.com/keys/microsoft.asc | gpg — dearmor > microsoft.gpg && \

mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg && \

sh -c ‘echo “deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main” > /etc/apt/sources.list.d/dotnetdev.list’ && \

apt-get update

# Install the .Net Core framework, set the path, and show the version of core installed.

RUN apt-get install -y dotnet-sdk-2.2 && \

export PATH=$PATH:$HOME/dotnet && \

dotnet — version

# Install docker

RUN apt-get update && \

apt-get -y install apt-transport-https \

ca-certificates \

curl \

gnupg2 \

software-properties-common && \

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”)/gpg > /tmp/dkey; apt-key add /tmp/dkey && \

add-apt-repository \

“deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo “$ID”) \

$(lsb_release -cs) \

stable” && \

apt-get update && \

apt-get -y install docker-ce

RUN apt-get install -y docker-ce

RUN usermod -a -G docker jenkins

# Good idea to switch back to the jenkins user.

USER jenkins

Build Docker Image

docker build -t filipemot/jenkins_dotnet_core .

Docker Run

docker run -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock filipemot/jenkins_dotnet_core

Admin Password

Acessar

http://localhost:8080/

Unlock Jenkins

Customize Jenkins

Instalando Plugins

Criando User

Configurando Instância

Finalizando Instalação

Criar Novo Job

Selecione Pipeline e Defina um nome

Configura o Projeto

Jenkins Credenciais

Configure Pipeline

Criar Arquivo Jenkinsfile

pipeline {

agent any

stages {

stage(‘DotNetApi’) {

steps {

echo ‘DotNetApi’

}

}

stage(‘Checkout’) {

steps {

git credentialsId: ‘admin’, url: ‘https://github.com/filipemot/DotNetCore_Web_API_Jenkins_Azure', branch: ‘master’

}

}

stage(‘Restore PACKAGES’) {

steps {

sh(script:”dotnet restore”,returnStdout:false)

}

}

stage(‘Clean’) {

steps {

sh(script:”dotnet clean”,returnStdout:false)

}

}

stage(‘build and publish’) {

steps {

sh(script: “dotnet publish — configuration Release “, returnStdout: true)

}

}

stage(‘deploy’) {

steps {

azureWebAppPublish azureCredentialsId: params.azure_cred_id, filePath: ‘bin/Release/netcoreapp2.2/publish/*.dll’,

resourceGroup:env.res_group, appName:env.customersapiapp, sourceDirectory: ‘bin/Release/netcoreapp2.2/publish/’

}

}

}

}

Crie no Job as Variaveis da execução

  • res_group: Resouce Group
  • customersapiapp: Nome da Aplicação

Azure (Criar Serviço web)

Registar a Aplicação em “App registrations”

Instale o Plugins da Azure App Service e Configure a Credenciais no Jenkins

Adiciona Roles da Autorização no Azure

Executar Pipeline

Conclusão

O processo de integração contínua com Jenkins com Dotnet Core e Azure é bem tranquilo, seguindo todos os passos você não terá problema para atualizar o seu ambiente da Aplicação

--

--

--

Desenvolvedor Senior da empresa Imagem, MBA Arquitetura de Software

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

New Feature — Enemy Wave System

Fan(s)tastic: Search for blazing-fast results

Definite guide to setting up Sourcetree and GitHub on Mac (M1)

Nifty OTM Strangle Created!

Open source to the rescue — again

You love GitHub but don’t like putting your code in the cloud.

Squirrel Weekly (08/12) 🐿️

Decoupling Complex Systems with Event-Driven Python Programming

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Filipe Motta

Filipe Motta

Desenvolvedor Senior da empresa Imagem, MBA Arquitetura de Software

More from Medium

Self Signed Cert - Local Testing With ASP.NET Core WEB API

Deploy .net 6 App to Azure from Azure DevOps using Pipelines

Microservices on AKS

Deploy Azure Function App and MS SQL into a Virtual Network with Terraform