As a part of our ASP.NET 5 cross-platform efforts, we are actively working on making applications written in ASP.NET 5 easy to deploy and ship on Linux and Mac OS X. A while ago, we have released the first official Docker image by Microsoft: the ASP.NET 5 Preview Docker Image.
Docker is an open source project that makes it easier to run applications in sandboxed application containers on Linux. With the ASP.NET 5 Docker image, you can get a base image where the ASP.NET 5 bits are already installed to run on Linux for you. All you need to do is add your application to the image and ship it so it will run in an app container!
Hey, look at that @aspnet 5 docker image in the Docker Repository. https://t.co/hfBmVUgrwK
— The ASP.NET Team (@aspnet) November 14, 2014
In this tutorial we will show how a simple application written in ASP.NET 5 Preview can be deployed to a Linux Virtual Machine running on Microsoft Azure cloud using Docker. The tutorial can be executed on a Linux or Mac OS X machine where Docker client is installed (or you can ssh into the Linux VM you will use). Once Windows client for Docker is available, you will be able to run these commands on Windows and once Windows Server container support comes out you will be able to use Docker to manage Windows Server containers.
NOTE: Both ASP.NET 5 (vNext) and the Docker image are in preview and the following instructions are subject to change in the future. Please refer to Docker Hub page and GitHub repository for latest documentation on how to use the Docker image for ASP.NET 5.
Step 1: Create a Linux VM with Docker
As Docker only runs on Linux today, you will need a Linux machine or VM to run Docker on your server. You can find Docker installation instructions here or follow the Getting Started with Docker on Azure to get a Docker-ready Linux VM on Azure.
In this tutorial we will assume you have a Linux Virtual Machine on Azure with Docker installed. If you are using some other machine, most of this tutorial will still be relevant.
Step 2: Create a container image for your app
In order to deliver your ASP.NET application to the cloud, you will need to create a container image containing your application.
Docker container images are layers on top of each other. This means your application is an addition on top of a “base image” –in this case the base image will be microsoft/aspnet. The image layers are stored as diffs, therefore while deploying your application, your image will not contain the Linux distribution or the ASP.NET binaries; it will only contain your application, making it small in size and quickly deployable.
Creating a Docker image is done using a file called Dockerfile. Similar to a Makefile, the Dockerfile contains instructions telling Docker how to build the image.
For the sake of this tutorial, we will use the sample HelloWeb application from aspnet/Home repository on GitHub. First, clone this repository on your development machine and go to the HelloWeb directory using git:
git clone git@github.com:aspnet/Home.git aspnet-Home cd aspnet-Home/samples/HelloWeb
In this directory you will see the following files:
├── Startup.cs ├── image.jpg └── project.json
We are going to create a file called Dockerfile in this directory with the following contents:
FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5004 ENTRYPOINT ["dnx", "-p", "project.json", "kestrel"]
Let’s go through this Dockerfile line by line. The first FROM line tells Docker that we will use the official ASP.NET image on Docker Hub as our base image.
The COPY line tells Docker that we will copy contents of this folder (.) to the /app directory of the container and the WORKDIR instruction will move to the /app directory.
The RUN instruction tells Docker to run the dnu restore command to install the dependencies of the application. We do this before running out application for the first time.
The EXPOSE instruction will inform Docker that this image has a service which will be listening at port 5004 (see project.json of the sample file for details). Lastly, the ENTRYPOINT instruction is the command executed to start the container and keep it up and running. In this case it is the “dnx . kestrel" command, starting the Kestrel development server for ASP.NET 5. Once executed, this process will start listening to HTTP connections coming from port 5004.
Step 3: Build the container image
Once we have Dockerfile ready, the directory should look like this, a Dockerfile residing with next to the application:
├── Dockerfile ├── Startup.cs ├── image.jpg └── project.json
Now we will actually build the Docker image. It is very simple –just run the following Docker command in this directory:
docker build -t myapp .
This will build an image using the Dockerfile we just created and call it myapp. Every time you change your application, a new image can be built using this command. After this command finishes, we should be able to see our application in the list of Docker images on our Linux VM by running the following command on our development machine:
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE myapp latest ccb7994d2bc1 39 seconds ago 499.8 MB microsoft/aspnet latest 16b1838c0b34 12 days ago 473.4 MB
As you can see, your app and the ASP.NET image are listed as images that exist on your machine.
Now we are ready to deploy our application to the cloud.
Step 4: Run the container
Running the container is the easiest part of the tutorial. Run the following Docker command on your development machine:
docker run -t -d -p 80:5004 myapp
- The
-tswitch attaches a pseudo-tty to the container (this switch will not be necessary in future versions of ASP.NET 5). - The
-dswitch runs the container in the background, otherwise the web server’s standard input/output streams would be attached to our development machine’s shell. - The
-pswitch maps port 80 of the VM to port 5004 of the container. In this case, connections coming to port 80 of the VM will be forwarded to our container listening on port 5004. - Lastly,
myappis the Docker image name we are using to start the container. We built this image in the previous step.
Once the container is started, the following command can be used to show containers running on your machine:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f70bd9ffbc36 myapp:latest "/bin/sh -c 'dnx . About a minute ago Up About a minute 0.0.0.0:80->5004/tcp mad_goodall
Our container has started! However, we are not quite done yet. We need to complete the endpoint port mapping for Azure VM. You need to go to the Azure Management Portal to map public TCP port 80 to internal port 80 on your Linux VM (see relevant tutorial here).
Now let’s head to the browser to see if it is working. Open http://your-cloud-service-name.cloudapp.net:80/ in your web browser:
Voila, you have an ASP.NET 5 application running on Linux inside a Docker container!
If your application is slightly different than the single-project sample application we used, you can learn more about writing Dockerfiles here and build your own images with custom commands.
Conclusion
We will continue to invest in running ASP.NET 5 applications on Linux and Docker and we are happy to bring you the Microsoft’s first official Docker image: ASP.NET 5 Preview Image.
Since this tutorial depends on previews of ASP.NET 5 and its Docker image, the exact usage instructions may change over time. Please head over to Docker Hub page or GitHub repository to see up-to-date instructions.
Please send us your feedback and help us improve this Docker image by opening new issues on GitHub repository.
Ahmet Alp Balkan (@ahmetalpbalkan)
Software Engineer, Microsoft Azure

Can this be used for applications in production? Or isn't it stable yet?
In the future will it be possible to run docker containers "by themselves" (for want of better terminology 🙂 ), I mean, more like Azure Websites than Azure VMs?
@Rick ASP.NET 5 and its Docker support is all still in preview. You can use it however you want, but its really not production ready.
How is the performance? Any benchmarks available? How does docket work?
@vijay You can learn more about Docker here: https://www.docker.com Processes inside containers directly run on host OS kernel and therefore should be as fast as just running without Docker. However, there might be a little impact introduced by networking and port forwarding on the container. Currently, there are no benchmarks available. Please feel free to try out and let us know! 🙂
This is super cool, looking forward to more blog posts about aspnet and docker.
Excellent post.It was truly informative. Your website is extremely helpful.
Here is small update to Dockerfile, that can save a lot of time on updating dependencies
FROM microsoft/aspnet
COPY project.json /app/
WORKDIR /app
RUN ["kpm", "restore"]
COPY . /app
EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]
@Alfeg This is an awesome trick! Thank you.
For the other readers: If you are changing your source package except the project.json, moving "COPY projects.json /app/" up will allow Docker to cache the build steps and the "RUN kpm restore" step –which can take quite some time, won't repeated over and over again.
Pretty sure I will be using this trick in my upcoming presentations. 🙂
Also one more note for awesome article.
Please highlight a fact, that provided sample will NOT work as expected without "-t" argument. I've lost a few hours because of this.
Alfeg
I don't understand why should I run ASP.NET applications on Linux? If I switch to Linux (and Docker) then I can choose from many Open Source technologies better than .NET.
While very exiting (and possibly the easiest way ever to bootstrap a running ASP.NET application from scratch) it is not working now 🙁
vagrant@vagrant-ubuntu-trusty-64:~/aspnet-Home/samples/HelloWeb$ sudo docker run -t -p 80:5004 myapp &
[1] 18396
vagrant@vagrant-ubuntu-trusty-64:~/aspnet-Home/samples/HelloWeb$ System.FormatException: Value for switch '/bin/bash' is missing.
at Microsoft.Framework.ConfigurationModel.CommandLineConfigurationSource.Load () [0x00000] in <filename unknown>:0
at Microsoft.Framework.ConfigurationModel.Configuration.Add (IConfigurationSource configurationSource) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ConfigurationModel.ConfigurationExtensions.AddCommandLine (IConfigurationSourceContainer configuration, System.String[] args) [0x00000] in <filename unknown>:0
at Microsoft.AspNet.Hosting.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
For anyone having the problem I posted before – it is a docker issue (github.com/…/3753) adding default /bin/sh when CMD is empty.
As a temp workaround I just ran it with a redundant command override:
docker run -t -d -p 80:5004 myapp /port=5004
excellent post
Shouldn't it also work on Windows, using the boot2docker Windows client: docs.docker.com/…/windows ?
(didn't try, just asking)
@Juri, boot2docker windows client does not actually contain a docker client for Windows at the moment. (That's something we are going to release soon.) It makes you ssh into a Linux VM running on VirtualBox where docker is installed, and allows you to run your commands from there. This tutorial would work in boot2docker as well.
How does the .Net application actually run on Linux (i.e. how is the CLR implemented). Is it running on Mono?
Although this example works, any other more complex app is not. I've created ASP.NET vNext Sample App (default project from Visual Studio 2015 Preview) and tried to deploy it. First there were problems with the usage of npm, bower and grunt by the project. Then, after dealing with those additional usages, docker has builded project, however it cannot be launched due to error:
System.InvalidOperationException: Unable to load application or execute command 'kestrel'. Available commands: web, gen, ef.
at Microsoft.Framework.ApplicationHost.Program.ThrowEntryPointNotfoundException (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.Exception innerException) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
@Marcin it looks like your project.json does not have a kestrel command like in the sample we used to deploy here. Can you please try adding that, or please file a bug at github.com/…/issues
When i am running the command
"docker run -t -d -p 80:5004 myapp" it says "Cannot start container 1002f3d1dcbd7e994c39baccac489c72cd9c8d22a0d917239fa1f4016ac3af74: Bind for 0.0.0.0:80 failed: port is already allocated". How can I map to other ports
@Rupesh
You can stop previously started application by running "docker ps"
and then, when you locate the app which occupies port 80, run "docker stop <container_id>" – this will allow you to bind other app to port 80. You can also use specify any other port in the "-p" parameter of "docker run".
If anyone has problems with creating dockerfile for ASP.NET vNext MVC projects, you can usdpe the dockerfile I've created : github.com/…/aspnet5-dockerfile . It prepares docker image to be able to run projects from visual studio 2015.
@Marcin. Thanks for your help.
I have tried to deploy my custom AspvNext application on Linux (with mono). I am doing all the steps suggested by you. When I go to localhost:5004 i am seeing the Welcome page ( standard AspvNext welcome page). But i am not able to navigate to any HTML pages ( Controller –> Views). If I type localhost:5004Homeindex.html in the web browser , it still shows standard AspvNext welcome page. I tried your ' dockerfile for ASP.NET vNext MVC projects' also.but still unable to navigate to controller and views..
Thanks froyke, using your tip (/port=5004) I got this working pretty fast. Without your tweak Docker kept reporting "Exited (1)".
ASP.Net inside a Docker Container is fantastic news. Seemed very clunky compared to my Docker testing using AngularJS and Nginx… looked like most of NuGet was downloaded 😉 Took ~ten minutes to build!
Initial speed aside the images are ~500MB and this demo spins up fast:
$ time sudo docker run -t -d -p 80:5004 myapp /port=5004
real 0m0.190s
user 0m0.011s
sys 0m0.015s
If it helps anyone I made this GitHub page. The instructions should 'just work' in Unbutu. I tested with two fresh VMs of Unbuntu, both worked first time.
github.com/…/ASP.Net5-Docker-Working-Sample
Thank you for sharing this information. I will wait for your next update. I'm curious that ASP.NET will run smoothly on linux. 🙂
http://www.asphostportal.com
When i install everything and get it all going, no matter what project i use to create my container on top of the asp.net one i get the EXACT same default "welcome to vnext bla bla", any ideas on whats going on?
Thanks
I get the following error when trying to build, according to tutorial.
kubuntu14:/var/www/asp/aspnet-Home/samples/HelloWeb$ docker build -t myapp .
2015/03/17 13:53:43 Post http:///var/run/docker.sock/build?rm=1&t=myapp: dial unix /var/run/docker.sock: no such file or directory
Also, I have not used docker before, just did standard setup.
Ok, I should run docker too, then it works..
sudo docker -d &
I marked it for "run at startup" but did not reboot.
I got below error by following the instruction, anyidea?
ERROR building certificate chain: System.NullReferenceException: Object reference not set to an instance of an object
at System.Security.Cryptography.X509Certificates.X509Chain.get_Roots () [0x00000] in <filename unknown>:0
at System.Security.Cryptography.X509Certificates.X509Chain.get_CertificateCollection () [0x00000] in <filename unknown>:0
at System.Security.Cryptography.X509Certificates.X509Chain.FindParent (System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) [0x00000] in <filename unknown>:0
at System.Security.Cryptography.X509Certificates.X509Chain.BuildChainFrom (System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) [0x00000] in <filename unknown>:0
at System.Security.Cryptography.X509Certificates.X509Chain.Build (System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) [0x00000] in <filename unknown>:0
at System.Net.ServicePointManager+ChainValidationHelper.ValidateChain (Mono.Security.X509.X509CertificateCollection certs) [0x00000] in <filename unknown>:0
Please, report this problem to the Mono team
ERROR processing certificate: System.NullReferenceException: Object reference not set to an instance of an object
at System.Security.Cryptography.X509Certificates.X509Certificate2.get_Version () [0x00000] in <filename unknown>:0
at System.Net.ServicePointManager+ChainValidationHelper.CheckCertificateUsage (System.Security.Cryptography.X509Certificates.X509Certificate2 cert) [0x00000] in <filename unknown>:0
Please, report this problem to the Mono team
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper unknown) System.Threading.Monitor:FastMonitorEnterV4 (object,bool&)
at Mono.Security.Protocol.Tls.RecordProtocol+ReceiveRecordAsyncResult.SetComplete (System.Exception ex, System.Byte[] resultingBuffer) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol+ReceiveRecordAsyncResult.SetComplete (System.Exception ex) [0x00000] in <filename unknown>:0
at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
got the same error as the commenter before me:
ERROR building certificate chain: System.NullReferenceException: Object reference not set to an instance of an object… (during docker build).
clues?
Only asp.net with C# will run on linux or Vb.net asp.net too?.
Only asp.net wich C# will run or with Vb.net too?
Worked well for the HelloWeb and ConsoleApp samples. For the console one I just removed the EXPOSE and replaced the kestrel line to ENTRYPOINT ["k", "run"]
The HelloMvc project (using the same Dockerfile as for HelloWeb) gave me a lot of trouble building on my DigitalOcean CoreOS instance – mono would throw a SIGSEGV or SIGABRT after a random amount of progress during the (*extremely* lengthy) package restore process. After many re-tries it finally worked. Maybe it works better on Azure… 😉
@Tom and @MS, the problems I was describing are the same as yours. I just kept re-trying it and it eventually succeeded. Also, I just noticed @Alfeg's suggested Dockerfile change, and that seems to help.
With the HelloMvc sample, I have the same problem that @Rupesh and @DM pointed out: I can never see anything except the welcome page. I tried commenting out the UseWelcomePage line – then I just get a blank page. Manually specifying /Home/Index on the URL doesn't help either.
By making changes based on following this tutorial http://www.asp.net/…/create-a-web-api-with-mvc-6 I was able to at least see an error page when I went to /Home but /Home/Index and /Home/User still just give me the welcome page.
Ok finally got it. 3 key things from that tutorial:
1. In Startup, call services.AddMvc() inside of the new ConfigureServices method instead of that block in Configure. (But still call app.UseMvc() in Configure.)
2: decorate controller classes with [Route("[controller]")]
3: decorate controller action methods with [Route("[action]")]
*Note that I don't mean [controller] and [action] to be placeholders – type them literally like that.
These are just for simple parameter-less route – refer to that tutorial if you're doing more complex stuff.
And now this all behaves even with the UseWelcomePage enabled!
"In order to deliver your ASP.NET application to the cloud, you will need to create a container image containing your application."
I don't want to host it on the cloud I want to host it on my own webserver. How do I host ASP.NET Applications on linux, sans Azure?
I guess I'm doing something wrong here as I can't get the container to run. Getting the below in the container log, does anyone have any hints?
Ta.
sudo docker logs a9e66c5e0de7
System.InvalidOperationException: Unable to load application or execute command 'Microsoft.AspNet.Hosting'. Available commands: web, kestrel.
at Microsoft.Framework.ApplicationHost.Program.ThrowEntryPointNotfoundException (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.Exception innerException) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
@ MSperrin
I had the same issue as you. The post is getting old, there is no more kpm or "k" what so ever, it has now switched to dnx. There was a talk with hanselman at build that you could find on channel 9. Replace kpm by dnu and k by dnx in your dockerfile, rebuild and run your image.
This page has some useful info on the updated tool names:
alexanderzeitler.com/…/Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime
My Dockerfile now says:
FROM microsoft/aspnet
COPY . /app
WORKDIR /app
RUN ["dnu", "restore"]
EXPOSE 5004
ENTRYPOINT ["dnx", "project.json", "kestrel"]
We at CenturyLink Labs developed a tool ImageLayers.io, that visualizes and analyses Docker images. You can see how each layer in the image is built, along with commands used, size and other interesting meta data. You can create a custom badge for your image and stick it on your github repo or dockerhub.
Here is a link to ImageLayers for the 'aspnet' image: imagelayers.io
And if you want to create a Docker image that runs an ASP.NET 5 console application, the ENTRYPOINT should be ["dnx", ".", "run"]
Thanks folks, updated the tutorial with the command name changes introduced in ASP.NET beta4.
Running a container on a VM defeats the purpose. Bryan Cantrell of Joyent gives an excellent overview of containers and the history. That being said thank you for posting. Is this dependent Mono?
http://www.youtube.com/watch
Hi
This way I started learning about Docker & Microservices
Can we run container without assigning pseudo-tty? Or is there alternate way to run kestrel engine instead of specifying in ENTRTYPOINT ?
I guess there's some problem here.
"dnu restore" tried to restore the packages for my project. So far, so good until it tried to restore packages referenced locally. I mean, the main project is referencing three more on the solution and of course it won't find them on the Nuget feed.
What's the workaround to this situation?
I took the plunge to see if I could get an ASP.NET 5 application to run in a Linux Container on Docker. I'm running Arch Linux and it took me a little while but I got it working. I had to add the missing comma to my Dockerfile (see post by JP Gouigoux above) and then I could run my container or image or whichever one it is. FINALLY…
However, I couldn't actually browse to the application in a web browser. http://localhost:5004 didn't work. I finally found the answer on a blog page linked in a post above by Superfoonly: alexanderzeitler.com/…/Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime
Even though it is now a little out of date it appears that the correct URL is now: http://localhost/api/values (with or without the :5004)
Good luck to all of you!
Well, I may have spoke too soon. http://localhost works.
As a matter of fact, http://localhost/fjdks;lafjdasjfkldjsafkj works too. Not sure if that's the way it's supposed to work or not. Hmmmmm….
Are these instructions current? I just cloned the Home repo and tried these instructions on the HelloWeb app. Things seem to go ok for a while, but then I start getting a lot of timeouts downloading nuget packages. It seems I am able to connect to said nuget repos in a browser, so I don't know what gives.
Warning: DownloadPackageAsync: http://www.nuget.org/…/4.0.10-beta-23109
HTTP request timed out. Retrying.
GET http://www.nuget.org/…/4.0.10-beta-23109
[…snip…]
———-
Restore failed
A task was canceled.
NuGet Config files used:
/root/.config/NuGet/NuGet.Config
Feeds used:
https://www.nuget.org/api/v2/
Error: DownloadPackageAsync: http://www.nuget.org/…/4.0.20-beta-23109
HTTP request timed out. Exiting.
Hey, I'm not able to build docker container image on my win 10. i have docker client installed using chocolatey. it gives error;
Get 127.0.0.1/…/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
If i change code or change dependency in project.json, do i need re-create docker image or i just re-run exist image? I'm newbie, please help me?
How can I check internal error in server, is there any docker's log file?
Successfully deployed a hello world aspnet 5 application docker container to my Synology NAS. 🙂
Any GUI to automate all this boring stuff….?
@Husen D
I had to disable Hyper-V when I got that error message on Windows 10.
Run 'bcdedit /set hypervisorlaunchtype off' in a administrator command prompt. Then reboot.
Hyper-V and VirtualBox don't seem to work together.
—
I love this! I will be able to run ASP.NET 5 apps on my NAS, how cool is that?!
docker run -d -p 80:8080 mytestapp is not starting the container.
IMAGE COMMAND CREATED STATUS
myapp "/bin/sh -c '[["dnx"," 59 minutes ago Exited (127) 59 minutes ago
Ran into an issue with this, that I was able to work out with some trial and error.
On my host machine I was just getting refused connections over the exposed docker port. Was able to get the test page via curl inside of the container, but nothing form outside of the container.
Turns out as of Oct 13th or so, the behaviour of –server-urls in the project.json config file changed, and the default setup now will only respond to requests from localhost.
Here's the issue for context: github.com/…/80
TLDR: if you are having trouble accessing the test page from the docker host, try to swap ""Microsoft.AspNet.Server.Kestrel –server.urls http://localhost:5004"" for ""Microsoft.AspNet.Server.Kestrel –server.urls http://*:5004" to allow connections aside from only through localhost.
Thanks for creating this great article. I followed through all the steps, got a longID back but when I browse to localhost:5004, I get an error.
I am using Windows 10 with Docker tooling like OracleVirtualBox..
i’m having problem with asp-net linux + mariadb. application can’t connect to the database
Executing action method XbetAgent.Web.Controllers.PartnerLoginController.Post with arguments (XbetAgent.Web.ViewModels.PartnerLoginModel) – ModelState is Valid’
fail: Microsoft.AspNet.Diagnostics.ExceptionHandlerMiddleware[0]
An unhandled exception has occurred: Unable to determine the provider name for provider factory of type ‘MySql.Data.MySqlClient.MySqlClientFactory’. Make sure that the ADO.NET provider is installed or registered in the application config.
System.NotSupportedException: Unable to determine the provider name for provider factory of type ‘MySql.Data.MySqlClient.MySqlClientFactory’. Make sure that the ADO.NET provider is installed or registered in the application config.
Docker for Linux is really nice I’ll do everything from the command line or from Visual Studio.
I have problems in building the app as explained in Step 3′ An “Unknown blob” error arises constantly.
This seems to be due to the fact that the microsft/aspnet image is for a Windows container.But the title of this post is specifically addressed to Linux containers, isn’t it?
Could you clarify this aspect? I want to run my ASP.NET app on a Docker running on Linux Ubuntu.
Is it currently possible or not?
Same question like you, “Unknown blob” is annoying me