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
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!
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?
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
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.
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?
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
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
"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."
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?
@@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
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.
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.
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.
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
Great Work !!! This is the clean and clear video of containerizing an api I have ever seen. Thanks for the short and superb video.
Just stumbles upon your channel, and very impressed of the quality of the videos and your teaching skills! Keep up the good work!
Thanks Axel!
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
Thank you! and of course so glad to see you again!
Thanks Azim!
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
Good to see you back !
Thanks for watching David! Glad to be back!
I can really say good configs are also an asset. Thank you!
Thanks, i struggled with those overriding of ENV variables and wondered why it kept using port 80
Great walk through man! Do you mind telling me what JSON Formatter that is in your browser?
excellent this is the simplest example i see , thank you
Perfect video, explained in a simple way
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
¡gracias por ver!
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!
very helpfull please keep going we need more and more of your content, especialy more technicaly and more in depth, thank you
Thanks Michel!
I love Docker.
Which app is that terminal emulator ?
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?
expose multiple ports using EXPOSE 5000-5001
Vocẽ pode usar no Dockerfile esse comando: ENV ASPNETCORE_ENVIRONMENT=Development
Great Job! Contratulations!
Thank a lot, you are the star!
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
A really good explanation. Short and simple.
Great session, simple and easy to understand , Thank you !!
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.
Keep Going , thanks for the simple explanation
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?
Thanks ,well explained
Thank you soo much! Very well explained!
Every time I make a change do I have to compile and upload the project?
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
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
I have this exact scenario - did you ever figure out the best way to handle it?
"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."
is it vsvim that you are using?
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?
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!
Hi Santiago. I'm using a custom VS theme. I believe you can find a recent version on my GitHub in the dotfiles repo.
@@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
Thank you Sir!
On a multi-core cpu it won't be necessary to use switch --disable-parallel
when I try to dockerize I get an error from visual studio: project targets windows and I need it on a linux container
Excelent tutorial! Thnxz!
Nice video, thank you
what extension you're using on browser ?
Thanks, great video!
r u planning to make videos on NodeJs?)
nice idea, what would you like to see?
@@WesDoyle let’s say real BFF(backend for frontend )
the image is applicable for .net 4.6.1?
How to deploy Docker container to the remote (ubuntu virtual machine) docker host?
Is console apps the same to Dockerize?
Generally, yes
@@WesDoyle Thanks for answering :)
Thanks!
nice video
4:08 you just paste link out of nowhere, where can it be found? Why are you not using dockerhub?
Please share a github link or similar to the dockerfile
And how do i do all of this with out docker desktop please help me :)
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.
Video starts at 3:10
Not able to understand docker commands
2:13 I've scared....
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.
Great video, thank you!