Dockerize .NET 6 in 10 Minutes

  Переглядів 127,583

Wes Doyle

2 роки тому

In this video, we're going to Dockerize our .NET 6 Web API built with TDD. We'll see how to build a multi-stage Dockerfile step-by-step. By containerizing our web API, it'll be much more convenient to manage the deployment our application to a variety of environments on-prem and in the cloud. We'll also set up a health check endpoint!
• 🤝 Become a Patron of the Channel!
Patreon supporters get access to source code from all episodes!
www.patreon.com/productivedev
• 👋 Get in Touch!
► Facebook bit.ly/productive-dev-fb
​​► LinkedIn bit.ly/wesd-linkedin
​​► Twitter bit.ly/wesd-twitter
​​• 🧑🏽‍💻 Udemy Courses
► Udemy bit.ly/wesd-udemy
• 🕘 Timestamps
0:00 - Intro
1:23 - Recap of the API
3:07 - Creating a Dockerfile
7:01 - Building the Docker image
8:25 - Running a Docker Container
10:01 - Testing Locally in Browser
10:25 - Adding a Health Check
12:00 - Rebuilding
12:49 - Testing Health Check in Browser
• 📚 Topics Covered in This Video
► Docker
► DevOps
► Dockerfile
► Dockerizing .NET
► .NET Health Check
► Docker multi-stage build
► Docker tagging► .NET 6► Web API Development

КОМЕНТАРІ: 72
@williscoolerthanu
@williscoolerthanu Рік тому
It is understated how nice it is that you are brief and well spoken. This stuff always ends up being an hour long video for 10 minutes worth of info.
@Gollumfili
@Gollumfili 7 місяців тому
Just found your channel and I wish I had found it sooner! How you only have 40k is beyond me, excellent content that I can't wait get stuck into
@Kricris
@Kricris 10 місяців тому
Thank you very much, i'm just days into docker and i'm very invested. Love to see people that take the effort to explain
@axelgrefslie1746
@axelgrefslie1746 2 роки тому
Just stumbles upon your channel, and very impressed of the quality of the videos and your teaching skills! Keep up the good work!
@WesDoyle
@WesDoyle 2 роки тому
Thanks Axel!
@rajeshkannan1391
@rajeshkannan1391 Рік тому
Great Work !!! This is the clean and clear video of containerizing an api I have ever seen. Thanks for the short and superb video.
@anuragchauhan2696
@anuragchauhan2696 5 місяців тому
Thank you Wes Doyle for your help..... I was facing an issue and after watching this video....and follow the steps you mentioned, it worked for me, seamlessly. Thanks once again
@janivimal
@janivimal Рік тому
Great session, simple and easy to understand , Thank you !!
@atuldongare8554
@atuldongare8554 2 роки тому
A really good explanation. Short and simple.
@ahmedelgendy5363
@ahmedelgendy5363 Рік тому
excellent this is the simplest example i see , thank you
@2005Azm
@2005Azm 2 роки тому
Thank you! and of course so glad to see you again!
@WesDoyle
@WesDoyle 2 роки тому
Thanks Azim!
@jovemprogramador7478
@jovemprogramador7478 3 місяці тому
Perfect video, explained in a simple way
@UrielChannel
@UrielChannel 2 роки тому
Great video, thank you! I've a question regarding the dockerfile, will it work if we change it like that: instead of line 4 (copy . .) we'll write (copy pathToCsproj destPathToCsproj), then dotnet restore command, then copy . . and finally dotnet publish? the purpose of this change is to cached the process of restoring nuget packages. again, thank you
@fernandoalanfillmann8739
@fernandoalanfillmann8739 6 місяців тому
Thank you soo much! Very well explained!
@jacobphillips9235
@jacobphillips9235 Рік тому
Great walk through man! Do you mind telling me what JSON Formatter that is in your browser?
@eduardkoryagin4792
@eduardkoryagin4792 2 роки тому
Thank a lot, you are the star!
@obadayahya6176
@obadayahya6176 5 місяців тому
Keep Going , thanks for the simple explanation
@Damotew-qv8fw
@Damotew-qv8fw 6 місяців тому
Thanks ,well explained
@davidkierzkowski
@davidkierzkowski 2 роки тому
Good to see you back !
@WesDoyle
@WesDoyle 2 роки тому
Thanks for watching David! Glad to be back!
@RomeuMello
@RomeuMello Рік тому
Thank you Sir!
@lindermannla
@lindermannla 7 місяців тому
Excelent tutorial! Thnxz!
@jlpcpr
@jlpcpr 6 місяців тому
Hi Wes, I have a question. This works perfectly for me with Docker Desktop if I use a Linux based ASP .NET image. However, when I try to create the image using one of the official (Microsoft) Windows based underlying OS, like nanoserver, it tells me that the Operating System is not compatible. Do you know of a way to build the image using one of those as base?
@tubaraomartelo
@tubaraomartelo Рік тому
Great Job! Contratulations!
@michelchaghoury870
@michelchaghoury870 2 роки тому
very helpfull please keep going we need more and more of your content, especialy more technicaly and more in depth, thank you
@WesDoyle
@WesDoyle 2 роки тому
Thanks Michel!
@kdietz65
@kdietz65 Рік тому
I followed your instructions and it worked. Thanks! However, I need to be able to ssh into the app service for various reasons. Following your instructions doesn't install the necessary dependencies so that ssh will work (using Kudos from the Azure Portal). It would be great to do a follow-on video that explains this.
@user-qk5sq1jc5r
@user-qk5sq1jc5r 7 місяців тому
Nice video, thank you
@pt_trainer9244
@pt_trainer9244 13 днів тому
Thanks, i struggled with those overriding of ENV variables and wondered why it kept using port 80
@cristiancarrillo7629
@cristiancarrillo7629 Рік тому
Great video, thank you!
@blu3_enjoy
@blu3_enjoy Рік тому
I love Docker.
@zetbit
@zetbit Рік тому
Thanks, great video!
@o.talisca
@o.talisca 9 місяців тому
This might be a dummy question but for example when using Laravel if we use volumes, the container source code will always be updated so we don’t need to always be resetting the container. Can it be done with .Net too?
@Gmaaa
@Gmaaa Рік тому
Every time I make a change do I have to compile and upload the project?
@MrTatPol
@MrTatPol 2 роки тому
gracias por el tip de correr docker con la variable ASPNETCORE_URLS configurada, no entendía porque siempre se iba a la puerta 80!. Muy agradecido
@WesDoyle
@WesDoyle 2 роки тому
¡gracias por ver!
@santiagocortez7903
@santiagocortez7903 2 роки тому
Great tutorial, Wes! Really helpful. Just one small question, could you please share the VS theme and font name that you are using? Thank you!
@WesDoyle
@WesDoyle 2 роки тому
Hi Santiago. I'm using a custom VS theme. I believe you can find a recent version on my GitHub in the dotfiles repo.
@sylendrababujr9449
@sylendrababujr9449 Рік тому
@@WesDoyle Do you have the same theme which you have used in this video ? I have verified your github, but it is not matching with the one and also it's been very old. It will be good if you share the theme in the video as it is very awesome
@jacobphillips9235
@jacobphillips9235 Рік тому
Thanks!
@minhajulhoque3625
@minhajulhoque3625 Рік тому
the image is applicable for .net 4.6.1?
@snivesz32
@snivesz32 5 місяців тому
Thanks that was nice. While watching I had a thought, and you don't cover why we would want a 2 stage build process, perhaps because it's obvious, but also perhaps it is worthy of mention. Why wouldn't we publish directly to a runtime container? Because it would have all the artifacts from your machine allowing it to be built. You could have certain drivers, or registered dlls or environment variables that aren't present in test, or prod. The very reason for containerizing (or a close second) is that by sanitizing the build environment it ensures all team members code that gets merged together still builds in a standalone vanilla environment. In a nutshell its good practice for exposing untracked dependencies. Cheers!
@maximilliantimofte4797
@maximilliantimofte4797 Рік тому
when I try to dockerize I get an error from visual studio: project targets windows and I need it on a linux container
@wadson_sm
@wadson_sm 10 місяців тому
what extension you're using on browser ?
@marcyanus1430
@marcyanus1430 2 роки тому
On a multi-core cpu it won't be necessary to use switch --disable-parallel
@user-ow6gy6xj5v
@user-ow6gy6xj5v Рік тому
How to deploy Docker container to the remote (ubuntu virtual machine) docker host?
@dgroh
@dgroh 2 роки тому
Great tutorial. What about HTTPS? You configured it in your docker run command, but it's not workking even after exposing 5001. Do you know how to get around on this?
@marcyanus1430
@marcyanus1430 2 роки тому
expose multiple ports using EXPOSE 5000-5001
@tsanalista
@tsanalista Рік тому
Vocẽ pode usar no Dockerfile esse comando: ENV ASPNETCORE_ENVIRONMENT=Development
@alysonramos3424
@alysonramos3424 2 роки тому
nice video
@glebbsif
@glebbsif Рік тому
Thank you. I have a question for you. I have, for example, 10 projects on 10 specific different services in my solution. It turns out that I can't create a Dockerfile at the solution level and I have to add the Dockerfile to each project separately. Right? But there is a problem. There is one more project in the solution, the eleventh. This is a library of classes with certain models. When I try to build a container, I get the following error about skipping building a common project with classes because it's not defined in the context of Dockerfile. How can I get out of this situation? Thanks
@WesDoyle
@WesDoyle Рік тому
good question, can be tricky at first. you can get it to work, though. just need to be aware of your Dockerfile definitions and build command context. Will try to make a video
@injenius21
@injenius21 Рік тому
I have this exact scenario - did you ever figure out the best way to handle it?
@ashkanmoghadasi5700
@ashkanmoghadasi5700 7 місяців тому
"For each executable project, such as a WebAPI or Console Application, it is imperative to possess a Dockerfile. As for the remaining projects, such as Class Libraries, that are employed within these projects, they are automatically integrated into your container via the 'dotnet restore' command."
@darkogele
@darkogele Рік тому
And how do i do all of this with out docker desktop please help me :)
@TheOkayUek
@TheOkayUek 6 місяців тому
Which app is that terminal emulator ?
@SoulSovereignty
@SoulSovereignty 8 місяців тому
Since the #1 DB-connectivity MS recommends is Entity Framework (EF), and since the #1 approach for "EF DB migration" is sqlcmd "script based"...then I would expect there is at least one example in the galaxy of a docker file that installs `sqlcmd`...so that the EF DB migration can be executed (preferably from a Web API "migrate" endpoint). However, no such example exists...and there is no ability with any "Azure App Service" compatible docker images to install `sqlcmd`. If you tackled that mess, you would be a God.
@Nurtylek
@Nurtylek 2 роки тому
r u planning to make videos on NodeJs?)
@WesDoyle
@WesDoyle 2 роки тому
nice idea, what would you like to see?
@Nurtylek
@Nurtylek 2 роки тому
@@WesDoyle let’s say real BFF(backend for frontend )
@stasasekulic6917
@stasasekulic6917 Рік тому
4:08 you just paste link out of nowhere, where can it be found? Why are you not using dockerhub?
@lastidea4925
@lastidea4925 Рік тому
Is console apps the same to Dockerize?
@WesDoyle
@WesDoyle Рік тому
Generally, yes
@lastidea4925
@lastidea4925 Рік тому
@@WesDoyle Thanks for answering :)
@vraja6812
@vraja6812 24 дні тому
Not able to understand docker commands
@justmati9458
@justmati9458 Рік тому
2:13 I've scared....
@emsicz
@emsicz 6 місяців тому
Video starts at 3:10
@AveN7ers
@AveN7ers Рік тому
Fuck Microshit. I've been struggling with all sorts of errors trying to make the port mapping work. The node, go, postgres images work as expected but this shit gotta be a struggle because of Microshit.
Спаси её волосы🙏🏻
00:40
БРУНО
Переглядів 1,9 млн
Мама и дневник Зомби (часть 1)🧟 #shorts
00:47
#smartphone #screenprotection #tech #shorts #magicjohn
1:01
MagicJohn
Переглядів 6 млн