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
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
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