Se você está lendo isso, parabéns, ainda há esperança para quem pensa que domina .NET Core e Docker! Aqui, vou mostrar como fazer uma aplicação de console que nunca para, usando Docker.

Ah, sim, você vai rodar essa beleza regularmente, como se a aplicação fosse a solução perfeita para todos os seus problemas.

Por que usar Console App & Docker?

Usar containers Docker é como embrulhar seu código com cuidado e enviá-lo para um ambiente neutro. Não importa se você usa Azure Functions ou WebJobs do App Services.

Docker Image

SHOW ME THE CODE

Comece com o básico: File > New > Project > Console App (.NET Core). Depois, adicione o Nuget FluentScheduler.

Troque o Program.cs por este código simples de dois jobs:

Um job roda a cada 5 minutos e outro às 2 da manhã. Para ajustar isso, mexa nas configurações de fuso horário do Docker.

Dockerfile

O Visual Studio cria um Dockerfile quando você adiciona Container Orchestrator Support. Escolha Linux.

Aqui está o Dockerfile, só precisa adicionar o fuso horário brasileiro para que o FluentScheduler funcione certinho:

Para configurar o fuso horário, use:

# Configure timezone
RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/Brazil/East /etc/localtime

Testando

Agora chega a hora de testar, abra o console e rode os comandos:

docker-compose build
docker run <image>

Você verá algo como:

Successfully built ef14ca42abf2
Successfully tagged dockerconsole:latest

Substitua pelo nome da imagem.

Verifique com este comando:

docker ps

Download

Clippy Octocat

O código está no meu GitHub.

Feedback

Deixe suas opiniões nos comentários e vamos conversar sobre .NET Core e Docker.