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.
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
Verifique com este comando:
docker ps
Download

O código está no meu GitHub.
Feedback
Deixe suas opiniões nos comentários e vamos conversar sobre .NET Core e Docker.