Create docker images with dotnet publish

local docker desktop with an image pushed by dotnet publish

Docker is a very convenient tool for writing, testing and especially for deploying software. Wide adoption of Docker Containers by all Cloud Providers has made it the default approach for enterprise software deployments.

Historically we have been using a combination of Dockerfile and Docker CLI to build and publish docker images. Starting with .NET 7, we can achieve the same by using dotnet publish command.

Today we are exploring how to containerize a .NET application with dotnet publish, configure it inside .csproj file and publish to the local Docker Desktop.


>>> Continue reading <<<

How to fix 'This section should be a list (it is currently defined as a map).' in bitbucket-pipelines.yml

bitbucket pipeline with configuration error saying This section should be a list (it is currently defined as a map)

We’ve all been there, editing bitbucket-pipelines.yml can be challenging. Bitbucket’s online validator is very handy, but it can produce false positives sometimes.

In this article, we take a look at bitbucket-pipelines.yml which passes Bitbucket’s validator but fails in the pipeline with This section should be a list (it is currently defined as a map). error. We also discuss tools that provide better local validation.


>>> Continue reading <<<

Say goodbye to the old design

old design of this blog

It’s been a long time since I started this blog, and I was never very too happy about the design, but now it’s finally changing.

The new design switches to a dark mode, introduces new fonts and styles, fixes some bugs and hopefully gives a better experience overall.

This post was created only for sentimental purposes - to keep a screenshot of the old look. Anyway, hope you will like the new design, and let’s say goodbye to the old one!


>>> Continue reading <<<

How to push NuGet packages to Azure Artifacts from Bitbucket Pipelines

azure devops portal with a private nuget package

After the recent MyGet outage, some of their users are going to be migrating to other private feed services. Major git repo hosting providers, such as GitHub, GitLab, or Azure DevOps have built-in support for NuGet private feeds, unfortunately it is not the case for Bitbucket Pipelines. So developers who use Bitbucket Pipelines for their CI/CD will need to utilize 3rd party services to store NuGet packages privately.

This article demonstrates how to use Azure Artifacts private feeds from Bitbucket Pipelines. We explore how we can authenticate, push and pull packages from the Pipelines, as well as locally.


>>> Continue reading <<<

MyGet outage

screenshot of myget status page showing all systems are down

Let’s face it, all software fails at some point. We’ve seen it in AWS, we’ve seen it in Azure. Bitbucket Pipelines, GitHub Actions, Windows, Mac, Linux even the program which put a man on the Moon, everything failed or crushed or glitched. Not constantly, but I think it wouldn’t be too hard to name a few episodes where your software just didn’t work for some time.

We, ourselves, probably wrote some programs which didn’t do what expected. And even though it’s our responsibility as developers to ensure the highest standard of quality in our product, failures are more or less inevitable. So the main question is not “Why it happened and who’s to blame?” but rather “How do we handle it correctly and recover as fast as we can?”.

For the past 30+ hours MyGet has been down. With no communication, no updates nor even a small glimpse of what’s going on and when it will be resolved, the team behind MyGet (if there is one?) showed us how to not handle failures in a system that some would consider business critical.


>>> Continue reading <<<