A small favor, can you answer +1 to this thread if the solution is working for you (Through VS2017 or CLI environment)? - Bits compilation-Deploy-Run in Docker.
We'd like to know if the environment/solution is working for most of the people or not.
Better if you specify what environment you are using, like answering any of the following:
+1 (VS2017)
+1 (CLI)
+1 (Both)
Answer with a -1 if you have issues and you couldn't make it work (compile/deploy/run to Docker), any of the following:
-1 (VS2017)
-1 (CLI)
-1 (Both)
We could create a survey, but we're not looking for specific statistics jus a sense of how it is working for the majority, and this way based on issues might be quicker for you guys than going to surveymonkey or anything like that.
Thank you! :)
+1 (Windows CLI, on Win10 Entr, RAM 7GB, got a lot of problems with SQL Container, managed to make it work after assigning docker 4352 MB and freeing RAM) ... wondering what HW is required to develop seriously with containers in real world scenarios. Any points?
@kifjj That's why we mentioned to set at least 4096 MB of memory to Docker and recommend a 16GB ram machine in the setup instructions. Take into account that this is only because SQL Server container requirements in a dev or testing environment where you spin everything up as containers. In a real production environment it is recommended to take out the DBs from Docker and put your Databases in a High Available system like Azure SQL DBA or a SQL Server cluster, on-premises. So the memory you'd need for that would be less.
Your microservices using .NET Core need very small amounts of memory, so you can have many and that won't be, usually, the issue in dev-test environments.
For a development/testing Docker environment, a 16GB machine would be good for most of the scenarios. It depends on how many "infrastructure containers" (like SQL, Redis and others) you have included. But usually, 16GB would be good to go for most dev/test environments.
For production, it really depends how scalable you'll need your system to be. When using an orchestrator (not just Docker) like Docker Swarm, Kubernetes, Meals DCOS in Azure Container Service or using Azure Service Fabric, it will depend on how many instances per microservice-type you want to have for high scalability. Not just memory but number of VMs, as well.
In short, HW requirements? it really depends on how large is your application in regards infrastructure (that impacts dev/test) and how scalable you want it to be in production
+1 (Both environments, CLI & VS2017) - Windows 10 Enterprise, RAM 16GB. Testing on Multiple machines.
:)
Hi CESAR
I am getting timeout error when the MVC application first starts.
At: CatalogService.cs line 54.
dataString = await _apiClient.GetStringAsync(catalogUrl);
VS2017, windows 10 , 16GB RAM
Oops. It was docker memory i guess. I set it to 4096MB and it started working now. :)
+1 (VS2017) - Windows 10 Enterprise, RAM 16GB
I tried to install the solution to Server 2016 with VS2017 without success. There doesn't seem to be a suitable docker installation for Windows 2016. I tried to install docker via powershell but cannot find a way to perform necessary configuration as outlined in this document. The reason I want to use Windows 2016 is that I cannot create a windows 10 image in my azure subscription.
Also just realized that docker for windows will not work for Azure VMs. As such, is there a way to have the eShop sample app setup and running in Azure?
@CESARDELATORRE thanks for your explanation. Everything makes sense, just a point I am missing.
Since in prod SQL Srv will not be in a container (which makes total sense) wouldn't be better to keep it out even in dev?
Hi @kifjj
One reason for using SQL Server in a container is for helping with managing external dependencies in development. We are not using only SQL Server but also Redis (in the Basket microservice), and RabbitMQ for microservice-to-microservice communication (still not in master branch but merged soon).
Forcing everyone to install and configure all these external dependencies would prevent most people to run the application. By using all these dependencies in Docker container you only need to pull the repo, build the images and everything is working fine.
Of course you can use SQL Server standalone: just update docker-compose files and everything should be fine :)
Thanks!
@kifjj @eiximenis Reasons given by eiximenis (Eduard) plus:
When using databases on containers that are spin-up and populated with the same sample data, that makes a perfect scenario for Integration-Tests, as the tests are predictable based on the same set of data.
However, you can of course have your databases on any regular SQL Server on-premises or Azure SQL DB. You'll just need to create the DB, change the connection-strings, and you're done. Even the sample data can be populated to those databases, too., as we do that with EF code.
One more point, you cannot use VMs in Azure for a DEVELOPMENT environment with "Docker for Windows" that would need a nested VM in Hyper-V, and that is not supported in Azure. However, you could, of course, deploy the containers to an Azure Linux VM that would be a Docker Linux host, for testing/production environment, but not development with Visual Studio, etc..
+1 VS17. Looks great.
+1 VS2017, Win 10.
By the way "ordering.api" depends on "sql.data", if anyone always fails with "PrepareForLaunch" task failed, pulling sql.data(microsoft/mssql-server-linux) blabla error, you can manually pull the image before debugging, using docker pull microsoft/mssql-server-linux.
+1 (CLI) mac
but when i try to check the web feature, there are some errors.
RAM: 8G
@geminiyellow What errors are you getting? - Remember, related to the Identity Authentication container based on IdentityServer4, when deploying from a Mac, you need to use the "production" docker-compose.prod.yml because the by default 10.0.75.1 IP is only available when using Docker for Windows.
Afaik that IP is not used in a Mac. So you need to explicitly set your external IP in the .env file at https://github.com/dotnet/eShopOnContainers/blob/master/.env
"localhost" won't work from the Mac when authenticating and the redirection because of that reason, you'll need to always use an specific IP when using the Mac.
In a real production system you would also use any specific DNS name for the Docker host or orchestrator DNS name.
+1 (VS2017) Win 10 Pro, RAM 16GB
+1 (Both) Windows 10 Pro, 32 GB RAM.
I did have to change the VS startup project to the Docker project (which wasn't mentioned in the 'main steps') but that's mentioned in the full instructions and was pretty clearly needed. :)
+1 (VS2017)
i want know that can Visual Studio for Mac 2017 run the solution ?
@dongdongmao Not currently. Probably in the future.
Visual Studio for Mac still doesn't support Docker containers as VS 2017 for Windows does.
What you could use is Visual Studio Code for Mac, as editor and using its Docker extension: https://code.visualstudio.com/docs/languages/dockerfile
Then, using Docker CLI like docker-compose build/up from bash to build images and to deploy the containers.
+1 (CLI) mac
but when i click LOGIN an unhandled exception occurred while processing the request.
InvalidOperationException: IDX10803: Unable to obtain configuration from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.ConfigurationManager
VS 2017
ERROR: for sql.data Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3536241391_sql.data_1 (e4672897e3ee71a9cbebcb666e9034ccca0d97d5756d18fe8275ba3331c51049): Error starting userland proxy: Bind for 0.0.0.0:5433: unexpected error Permission denied
@andrelmp Hey! Did you set up Docker Community (aka Docker for Windows) with the required amount of memory? - At least 4096 GB for Docker, as specified in the setting up instructions here:
https://github.com/dotnet/eShopOnContainers/wiki/02.-Setting-eShopOnContainer-solution-up-in-a-Visual-Studio-2017-environment
Also here:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-docker
If you did, try re-starting Docker.. Looks like you are having an "environment issue".
Can you start any SQL Server container by itself? like the following Docker CLI commands:
docker pull microsoft/mssql-server-linux
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=
You should probably face the same issue if you didn't set up the required memory for Docker.
wow that was fast! thank you @CESARDELATORRE
is exactly the memory issue on docker host
+1 for CLI (macOS). After having set Docker to 4GB RAM.
But when running docker container ls I get this - and I am missing the Basket API, right (according to https://github.com/dotnet/eShopOnContainers/wiki/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code)#testing-all-the-applications-and-microservices)?

BTW; when building the SPA, building the SPA with npm is successful.
But when executing docker-compose -f docker-compose.ci.build.yml up I get this error:
eShopOnContainers git:(dev) ✗ Docker-compose -f docker-compose.ci.build.yml up
Creating eshoponcontainers_ci-build_1
Attaching to eshoponcontainers_ci-build_1
ci-build_1 | /src/src/Web/WebSPA /src
ci-build_1 |
ci-build_1 | > [email protected] install /src/src/Web/WebSPA/node_modules/node-sass
ci-build_1 | > node scripts/install.js
ci-build_1 |
ci-build_1 | node-sass build Binary found at /src/src/Web/WebSPA/node_modules/node-sass/vendor/linux-x64-48/binding.node
ci-build_1 |
ci-build_1 | > [email protected] postinstall /src/src/Web/WebSPA/node_modules/node-sass
ci-build_1 | > node scripts/build.js
ci-build_1 |
ci-build_1 | Binary found at /src/src/Web/WebSPA/node_modules/node-sass/vendor/linux-x64-48/binding.node
ci-build_1 | Testing binary
ci-build_1 | Bus error
ci-build_1 |
ci-build_1 | npm ERR! Linux 4.9.13-moby
ci-build_1 | npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "rebuild" "node-sass"
ci-build_1 | npm ERR! node v6.10.0
ci-build_1 | npm ERR! npm v3.10.10
ci-build_1 | npm ERR! code ELIFECYCLE
ci-build_1 | npm ERR! [email protected] postinstall: `node scripts/build.js`
ci-build_1 | npm ERR! Exit status 135
ci-build_1 | npm ERR!
ci-build_1 | npm ERR! Failed at the [email protected] postinstall script 'node scripts/build.js'.
ci-build_1 | npm ERR! Make sure you have the latest version of node.js and npm installed.
ci-build_1 | npm ERR! If you do, this is most likely a problem with the node-sass package,
ci-build_1 | npm ERR! not with npm itself.
ci-build_1 | npm ERR! Tell the author that this fails on your system:
ci-build_1 | npm ERR! node scripts/build.js
ci-build_1 | npm ERR! You can get information on how to open an issue for this project with:
ci-build_1 | npm ERR! npm bugs node-sass
ci-build_1 | npm ERR! Or if that isn't available, you can get their info via:
ci-build_1 | npm ERR! npm owner ls node-sass
ci-build_1 | npm ERR! There is likely additional logging output above.
ci-build_1 |
ci-build_1 | npm ERR! Please include the following file with any support request:
ci-build_1 | npm ERR! /src/src/Web/WebSPA/npm-debug.log
eshoponcontainers_ci-build_1 exited with code 1
@ChristianWeyer
Did you try to run this first from the CLI:
npm rebuild node-sass
before running the docker-compose -f docker-compose.ci.build.yml up ?
But that should be done from the compose execution…, too...
Can you create an issue specific for Mac environment so we track it down when possible?
Thanks for the feedback.
Created a new issue @CESARDELATORRE ;-)
Just got latest on master an now am seeing this:

@ardalis That var is defined at the .env file:
https://github.com/dotnet/eShopOnContainers/blob/master/.env
Which, by default should be set as localhost, see that in the file.
Are you getting that file when cloning the repo?
@CESARDELATORRE Yes, I have a .env file. I just switched to latest dev branch but see same behavior. The .env file has this in it:
ESHOP_EXTERNAL_DNS_NAME_OR_IP=localhost
ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP=10.121.122.92
But apparently it's not being read.
@ardalis Weird, try to reset Docker.. I just pulled the DEV branch and everything is working for me from VS 2017 after just hitting F5. Let's take it offline if it still doesn't work for you, ok?
-1 (VS2017) on Win10 Entr, RAM 32GB
when click on LOGIN after a while got this error:
An unhandled exception occurred while processing the request.
TaskCanceledException: A task was canceled.
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
IOException: IDX10804: Unable to retrieve document from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever+
InvalidOperationException: IDX10803: Unable to obtain configuration from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.ConfigurationManager+
-1 CLI
When I run the command docker-compose -f docker-compose.ci.build.yml up I get an error in the end of the command:
ci-build_1 | /usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Publish.targets(100,5): error MSB3030: Could not copy the file "/src/src/Web/WebSPA/wwwroot/dist/main.411b08094680fcce978b.bundle.js" because it was not found. [/src/src/Web/WebSPA/WebSPA.csproj]
ci-build_1 | /usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Publish.targets(100,5): error MSB3030: Could not copy the file "/src/src/Web/WebSPA/wwwroot/dist/main.411b08094680fcce978b.bundle.map" because it was not found. [/src/src/Web/WebSPA/WebSPA.csproj]
@buzzfrog
Opening an issue ( https://github.com/dotnet/eShopOnContainers/issues/164 ) with that as it is an issue from the latest version of dotnet cli. This used to work for us.
It seems it is already fixed by our team (.NET team) and will be available in the next version, soon.
@richardrcruzc Did you follow the steps specified at the instructions in regards the Firewall ports needed to be opened so the Identity container can work properly?
See:
https://github.com/dotnet/eShopOnContainers/wiki/02.-Setting-eShopOnContainer-solution-up-in-a-Visual-Studio-2017-environment
Also, are you deploying to Docker for Windows or Docker for Mac?
The "external" IP: 10.0.75.1 only works in development environments using Docker for Windows.
It using Docker for Mac, you need to deploy following this setup:
https://github.com/dotnet/eShopOnContainers/wiki/09.-Deploying-eShopOnContainers-to-a-%22Production%22-environment
If i want change database of this project to Mysql.What can I do?
@dongdongmao We're using Entity Framework Core, so you could use the MySQL Docker image (or a real MySQL server), then change the connection strings at the docker-compose.override.yml files. However, that might not be enough. Anything specific related to SQL Server (like the Hi/Lo pattern) should be migrated to a different implementation with MySQL.
I would start just with the Catalog microservice which is the simplest one. You can test it with Swagger by just using it from a browser at http://localhost:5101 so you can query the microservice, update, etc.
You can go to all the docker-compose yml files and remove anything which is not related to the Catalog microservice so you isolate your work on that initial microservice targeting MySQL.
Many package restore error. while opening in vs2017 community and windows 7. could you please have a look on this. i know ducker need windows 10 but atleast it build in windows 7
You need Windows 10 in order to run it on Docker Community Edition for Windows.
quick question will it need windows 10 to build the project? running the application is a different part. Can i migrate to this project to work without any ducker support? As it is a awesome project i just want to learn each part and do not want to miss due to my system limitation.
@babula38 - We haven't tested anything on Windows 8.x or Windows 7. But, without using Docker, you could migrate the projects to standalone Web API services, of course, since .NET Core and VS 2017 support Windows 8.x and Windows 7. Below you have the requirements for .NET Core and VS 2017:
.NET Core is supported on the following versions of Windows:
Windows 7 SP1
Windows 8.1
Windows 10
Windows Server 2008 R2 SP1 (Full Server or Server Core)
Windows Server 2012 SP1 (Full Server or Server Core)
Windows Server 2012 R2 SP1 (Full Server or Server Core)
Windows Server 2016 (Full Server, Server Core or Nano Server)
The requirements for VS 2017 are: Supported Operating Systems Visual Studio 2017 will install and run on the following operating systems: • Windows 10 version 1507 or higher: Home, Professional, Education, and Enterprise (LTSB is not supported) • Windows Server 2016: Standard and Datacenter • Windows 8.1 (with Update 2919355): Basic, Professional, and Enterprise • Windows Server 2012 R2 (with Update 2919355): Essentials, Standard, Datacenter • Windows 7 SP1 (with latest Windows Updates): Home Premium, Professional, Enterprise, Ultimate.
But, we cannot provide support other than to the versions we are testing which is eShopOnContainers running on Docker (and multiple orchestrators in the near future), ok?
Another question.How to run this project by real moblie device.For example Android?
@dongdongmao Basically, you need some knowledge on Xamarin apps when using Visual Studio.
We have done some "light" documentation about the Xamarin app as this project's goals are more about the server side (microservices/containers), however, these are the links you need to take into account:
Xamarin app README:
https://github.com/dotnet/eShopOnContainers/blob/master/src/Mobile/README.md
Setting-up-the-Xamarin-mobile-app to use the Docker Containers/Microservices:
https://github.com/dotnet/eShopOnContainers/wiki/07.-Setting-up-the-Xamarin-mobile-apps
If not using the "mock feature" at the Xamarin app but you want to access the Docker containers for real, then, you need to deploy the containers and access them through your external IP or DNS name if deploying to a cluster. Related to that (external IP of the docker Host), read this:
About simply deploying the Xamarin app to an Android device, you do it like any other Xamarin app, from Visual Studio, or debugging the Xamarin app with F5, etc.
A problem confused me.I run this project (CLI mac) before and it worked.Now a new problem arises,
i just use docker-compose up but i found the eshop/basket.api not run as a container so i click the button [add to cast] it cant work, and i found this exception below.
Unhandled Exception: RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable
---> RabbitMQ.Client.Exceptions.ConnectFailureException: Connection failed ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketE
xception: Connection refused 172.18.0.2:5672
@dongdongmao Related to this issue: https://github.com/dotnet/eShopOnContainers/issues/157
Yes. This is something that started in the Mac environment (not in Windows) when we added the Event Hub based on a RabbitMQ container. It is caused by the fact that when starting all the containers, in the Mac environment the RabbitMQ container must start not soon enough for the client containers/microservices. For any reason, that is not happening when starting in Docker for Windows.
In any case, this is something we need to fix, we need to make the RabbitMQ connections resilient, so if for any reason it can't connect (when starting or even partial failures in the cloud) we need to implement retry with exponential backoff logic in the client apps.
As a temporal workaround, you could start the RabbitMQ container first (with docker run or a different docker-compose file only for that container) then start the rest of the application with docker-compose (without having the RabbitMQ container in the global docker-compose files).
Please, confirm if that was your issue. We'll reply here when this is fixed.
@CESARDELATORRE but why it can work before? and how can i run RabbitMQ first?
@dongdongmao Not sure if the version you were testing previously was not including the Event Bus and RabbitMQ container as that is something we've developed recently.
In order to run the RabbitMQ container first you'd need to remove it from the global docker-compose files and deploy it independently before deploying the whole solution.
In any case, we're in the process of fixing this resiliency issue so it should be working in a few days, early next week, probably.
@CESARDELATORRE Hi,I have a problem about database of microservice container. For example if i want to show databases of SQL Server, how can i connect to it and is there any tools can help?
You can do it the same way, using SQL SERVER MANAGEMEMT STUDIO. You just need to change the connection parameters, using the external IP of the Docker host. Make sure the firewall is not closing the used port, neither.
Take a look
+1 vs2017 win 10 pro
+1 VS2017 Win 10 Enterprise with 12 GB RAM
I've managed to run through the CLI environment using Ubuntu 16 and VS Code, but I couldn't debug it. Is that possible to debug inside a container using VS Code on Linux?
Nope, in order to directly debug on the Containers you need Visual Studio 2017 on Windows. As of today.
I've managed to run through the CLI Mac and then run Docker-compose -f docker-compose.ci.build.yml up this error happend:
ci-build_1 | ERROR in /src/src/Web/WebSPA/node_modules/extract-text-webpack-plugin/loader.js??ref--10-0!/src/src/Web/WebSPA/no
de_modules/style-loader/index.js!/src/src/Web/WebSPA/node_modules/css-loader/index.js?{"sourceMap":false,"importLoaders":1}!/src/
src/Web/WebSPA/node_modules/postcss-loader/index.js!/src/src/Web/WebSPA/node_modules/sass-loader/index.js!/src/src/Web/WebSPA/nod
e_modules/bootstrap/scss/bootstrap.scss doesn't export content
Hi dongdongmao,
Could you please execute the following command to remove packages and cache and do reinstall?
rimraf node_modules
npm cache clean
npm install
Thanks.

I am getting the following error
An unhandled exception occurred while processing the request.
CurlException: Couldn't connect to server
System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
HttpRequestException: An error occurred while sending the request.
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
HttpRequestException: An error occurred while sending the request.
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult()
System.Net.Http.HttpClient+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http.ResilientHttpClient+<>c__DisplayClass8_0+<
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Microsoft.eShopOnContainers.BuildingBlocks.Resilience.Http.ResilientHttpClient+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Microsoft.eShopOnContainers.WebMVC.Services.CatalogService+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Microsoft.eShopOnContainers.WebMVC.Controllers.CatalogController+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Builder.RouterMiddleware+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware+
Do you get this error after refreshing the browser after you wait a couple of minutes so the Containers are all started?
Or are you always getting this error even if you wait for the containers to start?
+1 CLI
On Kubernetes setup, I added bower to requiredCommands.
$requiredCommands = ("docker", "docker-compose", "kubectl", "bower")
SPA still failing with url value cannot be null but still investigating the issue.

+1 VS2017 The build hung pulling library/rabbitmq. Can't stop the build, can't close VS2017.... I started again, did the npm stuff fro WebSPA, sorted out some Docker Config and it's all up & running. Good job guys.... looking forward to playing with this ......
+1 (VS2017) Looking Good!
-1 (VS2017)
I run into 2 problems with eShopOnContainers-ServicesAndWebApps.sln that I managed to work around. Hopefully this info helps someone.
NuGet package restore issue
Auto NuGet package restore in VS2017 that kicks in as soon as I open the solution is unable to complete due to the following error. This sometimes prevents VS from completing the restore and, in turn, from building or running the solution. The screenshot only shows some of the projects that fail.
Error occurred while restoring NuGet packages: The operation failed as details for project ... could not be loaded.

As a workaround, as per this I added the following to NuGet.config and auto package restore does not start anymore. I can run dotnet restore now and the solution works from there.
<packageRestore>
<add key="enabled" value="False" />
</packageRestore>
NPM and Bower package restore issue
VS2017 comes bundled with outdated Node, NPM and Bower. This makes NPM and Bower package restore that also kicks in when you load the solution slow and unable to complete. You also get warnings in the Output window like the one below.
npm WARN engine @angular/[email protected]: wanted: {"node":">= 6.9.0","npm":">= 3.0.0"} (current: {"node":"5.4.1","npm":"3.3.4"})
One workaround is to disable auto package restore for NPM and Bower in VS settings:

But since I have my own Node (with global NPM and Bower among other packages) installed that I tend to keep up to date, I prefer to use that. To do so I only needed to disable the external web tools bundled with VS like this:

Now auto package restore for NPM and Bower can be re-enabled and works fine.
Dev machine
Tested on a machine powered by a 6-core CPU at 3.3 GHz, 16GB RAM and a SATA III SSD. Running Visual Studio Community 2017 version 15.2 (26430.13) with NuGet Package Manager version 4.2.0. Only installed 2 workflows: ASP.NET and web development and .NET Core cross-platform development. Default settings. No own extensions installed.
Hello colleagues,
Don't know what's wrong. I've got docker running, I have configured it according to instructions. Trying to run Docker-compose - build hangs infinitely on the first pulling step (doesn't matter if I run it from VS or command line):
1>Building webstatus
1>Step 1/6 : FROM microsoft/aspnetcore:1.1.2
1>1.1.2: Pulling from microsoft/aspnetcore
Another issue comes up when I'm trying to launch a complete solution (including mobile), I see the error:
The "CreateAdditionalLibraryResourceCache" task failed unexpectedly (from eShopOnContainers.TestRunner.Droid project)
Am I missed to install something?
@command0r Do not launch the global solution as you will have incompatibilities with the Android emulator which is not compatible with Hyper-V needed by Docker.
As stated in the Wiki and procedures, use the Open solution eShopOnContainers-ServicesAndWebApps.sln
solution.
If you want to test the Xamarin app, you have 3 choices:
Finally, about the "docker-compose -build"... it is weird if it is also failing from Visual Studio 2017.
sometimes when building within the build container from the CLI there are issues. But building with VS2017 should work.
If it hangs when pulling the image, looks like you have any network issue?
Can you do this so you download the images in advanced to your local repo?:
Command Prompt:
docker pull microsoft/aspnetcore:1.1.2
That should pull/download the image so it'll be ready in your local repo afterwards. Then, try again.
Hi Cesar,
Thanks for your prompt reply. I've been to your session on MSBuild conference last month btw, it was awesome. My personal experience on the desktop computer is not that good so far (concerning the compute power, it's not an issue, as I have Intel 4.7Ghz, quad core, 32Gb RAM), no obvious network issues, as everything else is working fine. It is all clear about Xamarin, thank you for the detailed answer. Docker pull doesn't work even if I run pull from the command line, please see the screenshot below:

Never seen anything like that, download process just hangs at some point, so I have to restart the session all over again. I have disabled WF and all possible background processes along with antivirus software - It doesn't help. Is there any way I can trace down what's wrong with the network (if it's a network issue).
I plan to spin up a VM in Azure and try there as well.
In reverse, it worked just fine on my Macbook. I was able to run it from the console from the first attempt.
By the way, any ideas when Docker support for Mac version of VS will be available?
(sorry for the offtopic).
Alex
@command0r Really weird. First time I see that Docker CLI issue in a Windows machine with Docker. If a regular docker pull image doesn't work for you, then you have some kind of Windows machine issue or network issue. Maybe there's a firewall in your company that is not allowing some special communication with Docker Hub? - In any case, this issue doesn't have anything to do with our development, as you'll suppose.
I'll suggest to try the same actions with Docker in a different network, at home, etc. or with a different Windows computer? (if you're saying that with a Mac works, then looks like the issue is with your specific Windows machine, it might have special Windows Domain policies?), try with a clean Windows machine out of any Windows Domain, etc...
Docker support in VS for Mac, supporting deploying and debugging of .NET Core and ASP.NET Core in Docker containers will come soon in the ALPHA channel. :)
This is just not proxy aware un-fortunately like most tech comming out these days making me wonder if Iam the only one that works behind a proxy !!! The project builds fine but wont run when I hit F5 as it runs into a proxy error. I get the error (see below) on the Docker Compose project.
I tried these things :
But no joy so far!
I suspect I need to edit Dockerfile or docker-compose.yaml files to pass proxy creds in clear text ?
--- Error Details ---
The remote server returned an error: (407) Proxy Authentication Required
Severity Code Description Project File Line Suppression State
Error MSB4018 The "EnsureVsDbgExists" task failed unexpectedly.
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.BuildTasks.VsDbgHelper.<>c__DisplayClass3_0.<<DownloadGetVsDbgPSScriptAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.BuildTasks.VsDbgHelper.<EnsureLatestVsDbgAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\Docker\Microsoft.VisualStudio.Docker.Compose.targets 185
@sg1970 This is related to your Docker environment configuration since you need to use a proxy.
Basically, you need to have access to https://hub.docker.com/ in order to pull/download the base Docker images.
You can try to manually pull/download the base images you see on every dockerfile, or the infrastructure containers, like running the following Docker CLI commands from the command prompt (once Docker is installed):
docker pull microsoft/aspnetcore:1.1.2
docker pull microsoft/mssql-server-linux
docker pull mongo
docker pull redis
docker pull rabbitmq
Here's some info about it, from Docker:
Proxy configuration
If you are behind an HTTP proxy server, for example in corporate settings, before open a connect to registry, you may need to configure the Docker daemon’s proxy settings, using the HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables. To set these environment variables on a host using systemd, refer to the control and configure Docker with systemd for variables configuration.
Also, see this thread at stackoverflow
https://stackoverflow.com/questions/23111631/cannot-download-docker-images-behind-a-proxy
I cannot test it because we don't use any traditional proxy in MSFT Corpnet.
In any case, you are experiencing a Docker environment problem, so please, research in Docker's sites, as Docker CLI does support to work with proxies, ok?
Thank you.
@CESARDELATORRE Thanks for the quick response. Greatly appreciate that !
But still stuck with the same Proxy ... It just wont run thru Visual Studio !
I realize that it has nothing to do with your code (Works from home) but something to think about.
---Manual Docker Pull ---
C:\>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
d4w/nsenter latest 9e4f13a0901e 9 months ago 83.8 kB
C:\>docker pull microsoft/aspnetcore:1.1.2
1.1.2: Pulling from microsoft/aspnetcore
9f0706ba7422: Pull complete
8c906b05891b: Pull complete
7378286116c1: Pull complete
6c5e797d4ef1: Pull complete
b660c1be1245: Pull complete
Digest: sha256:8dc2cad5c561aaf44fdc963f5cd8ac36e53b52dae595a50b4212930cca533b5a
Status: Downloaded newer image for microsoft/aspnetcore:1.1.2
C:\>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
microsoft/aspnetcore 1.1.2 7a07a406c6af About an hour ago 305 MB
d4w/nsenter latest 9e4f13a0901e 9 months ago 83.8 kB
C:\>
@sg1970 Interesting... If it is about Visual Studio and not really about Docker CLI, I'll ping the VS Docker Tools team guys. What is your email? Please, send me an email to CESARDL at Microsoft.com so I copy you into the thread I'll open with the VS Docker Tools team guys.
Hi, I'm experiencing the same problem as @richardrcruzc, namely the following exception when I click the Login link:
IOException: IDX10804: Unable to retrieve document from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
As @CESARDELATORRE suggested, I followed the setup guide for Windows and used the add-firewall-rules-for-sts-auth-thru-docker.ps1 script to setup the local firewall (by the way it seems that in-bound AND out-bound rules are required since the script is adding both of them). However, the mvc app (http://localhost:5100) can't see the Identity API (which is correctly responding at the http://10.0.75.1:5105/.well-known/openid-configuration url).
Any ideas/suggestions?
@timotyweis and @richardrcruzc Just in case, can you create the Firewall rules by yourself instead of using the PowerShell script? Also, can you check that you have the IP 10.0.75.1 set up for you after you installed Docker for Windows? Check that out with ipconfig, for instance.
It really looks like the firewall is stopping it.
As final test, try disabling the firewall temporally, just for the test and to isolate the issue.
@CESARDELATORRE than you for the answer.
The IP is set up and enabled:
Ethernet adapter vEthernet (DockerNAT):
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter
Physical Address. . . . . . . . . : 00-15-5D-3C-6A-01
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 10.0.75.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled
I deleted and recreated the firewall rules (I also tried to _allow edge traversal_) but nothing changed.
Then I disabled the firewall completely and everything appeared to work, so your thoughts are indeed correct. However, i found in the docker forums that also other users had problems under Windows using Hyper-V and the only solution was to disable the firewall completely (suboptimal in my opinion)....
Question: wouldn't be possible to setup IdentityServer in such a way that the internal resolution will be done via http://identity.api but the external via http://localhost:5105 or http://10.0.75.1?
Hi @timotyweis
Then I disabled the firewall completely and everything appeared to wor
Same happens to me. I added firewall rules, then everything went fine. But few days and some restarts later I started to see this error. :(
Now I need to disable firewall to work. As you said there are other users that are having this issue :(
Hey guys, I'm having the same problems as @jduartex .
System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)
System.Net.Http.CurlHandler+MultiAgent.FinishRequest(StrongToWeakReferenceeasyWrapper, CURLcode messageResult)
Any idea why this might be happening? I'm on the master branch. It seems to be throwing this exception from just about every service.
Same as @timotyweis here. Turning firewall is not an option at all, any advices?
+1 (VS2017)
-1 (CLI)
Windows 10 Enterprise - 16GB RAM
PS C:\Temp\eShopOnContainers> docker-compose -f docker-compose.ci.build.yml up
Starting eshoponcontainers_ci-build_1 ...
Starting eshoponcontainers_ci-build_1 ... done
Attaching to eshoponcontainers_ci-build_1
ci-build_1 | /src/src/Web/WebSPA /src
ci-build_1 |
ci-build_1 | > [email protected] install /src/src/Web/WebSPA/node_modules/node-sass
ci-build_1 | > node scripts/install.js
ci-build_1 |
ci-build_1 | node-sass build Binary found at /src/src/Web/WebSPA/node_modules/node-sass/vendor/linux-x64-48/binding.node
ci-build_1 |
ci-build_1 | > [email protected] postinstall /src/src/Web/WebSPA/node_modules/node-sass
ci-build_1 | > node scripts/build.js
ci-build_1 |
ci-build_1 | Binary found at /src/src/Web/WebSPA/node_modules/node-sass/vendor/linux-x64-48/binding.node
ci-build_1 | Testing binary
ci-build_1 | Binary is fine
ci-build_1 | [email protected] /src/src/Web/WebSPA/node_modules/node-sass
ci-build_1 | /src
ci-build_1 | /cli-linux /src
ci-build_1 | /bin/bash: ./build-bits-linux.sh: /bin/bash^M: bad interpreter: No such file or directory
eshoponcontainers_ci-build_1 exited with code 126
@pmsousa please, I made a few fixes for using the CLI. Please, confirm if it works for you now.
These commits:
Thanks,
Cesar.
Regarding the firewall problems, I solved it by disabling an inbound rule called "vpnkit". It specifically blocks C:\program files\docker\docker\resources\vpnkit.exe on public networks. And somehow my network is currently identified as public. In fact I have four rules called "vpnkit", and disabling the one that blocks TCP on public networks was enough. You still need the rules added by the Powershell script as well.
So, +1 VS2017!
Hi, I'm using VS2017 and still new with this docker stuff. I've follow the instructions on wiki, but I'm getting an error The "PrepareForLaunch" task failed unexpectedly...
Should I configure the .env file or docker-compose.yml with my own settings?
Thanks.
-----Error Details-----
Error MSB4018 The "PrepareForLaunch" task failed unexpectedly.
Microsoft.DotNet.Docker.CommandLineClientException: The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
Creating network "dockercompose3557121983_default" with the default driver
Building webstatus
Building locations.api
Building payment.api
Building graceperiodmanager
Building identity.api
Building basket.api
Building webspa
Building marketing.api
Building ordering.api
Building catalog.api
Building webmvc
Creating dockercompose3557121983_basket.data_1 ...
Creating dockercompose3557121983_nosql.data_1 ...
Creating dockercompose3557121983_sql.data_1 ...
Creating dockercompose3557121983_rabbitmq_1 ...
Creating dockercompose3557121983_webstatus_1 ...
Creating dockercompose3557121983_nosql.data_1
Creating dockercompose3557121983_basket.data_1
Creating dockercompose3557121983_sql.data_1
Creating dockercompose3557121983_rabbitmq_1
Creating dockercompose3557121983_webstatus_1
[1A[2K
Creating dockercompose3557121983_sql.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_sql.data_1 Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_sql.data_1 (289aa371b17c67723457229960ef35194ba09331b2030cc6dbf7c8f7fc8e247c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5433:tcp:172.21.0.2:1433: input/output error
[1A[2K
Creating dockercompose3557121983_webstatus_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_webstatus_1 Cannot start service webstatus: driver failed programming external connectivity on endpoint dockercompose3557121983_webstatus_1 (8dae4b2e4160117389f9f080c31ab0e7585b0f2b934f1023310cc9a7979567d6): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5107:tcp:172.21.0.3:80: input/output error
[1A[2K
Creating dockercompose3557121983_basket.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_basket.data_1 Cannot start service basket.data: driver failed programming external connectivity on endpoint dockercompose3557121983_basket.data_1 (a50b713df5ddbc9a00e5016cb7ef98518b7de794a71df684cad009fbacad1927): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:6379:tcp:172.21.0.4:6379: input/output error
[1A[2K
Creating dockercompose3557121983_rabbitmq_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_rabbitmq_1 Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3557121983_rabbitmq_1 (091c817509d904e1f5b30391bb05a63e6a4d873664908aa2bdb80687fd44f394): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5672:tcp:172.21.0.2:5672: input/output error
[1A[2K
Creating dockercompose3557121983_nosql.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_nosql.data_1 Cannot start service nosql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_nosql.data_1 (2bbafa382790fe2094b1863066b3a6d19cf24a0664c5b9335c43c19e0e59a817): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.21.0.3:27017: input/output error
ERROR: for webstatus Cannot start service webstatus: driver failed programming external connectivity on endpoint dockercompose3557121983_webstatus_1 (8dae4b2e4160117389f9f080c31ab0e7585b0f2b934f1023310cc9a7979567d6): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5107:tcp:172.21.0.3:80: input/output error
ERROR: for sql.data Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_sql.data_1 (289aa371b17c67723457229960ef35194ba09331b2030cc6dbf7c8f7fc8e247c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5433:tcp:172.21.0.2:1433: input/output error
ERROR: for nosql.data Cannot start service nosql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_nosql.data_1 (2bbafa382790fe2094b1863066b3a6d19cf24a0664c5b9335c43c19e0e59a817): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.21.0.3:27017: input/output error
ERROR: for rabbitmq Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3557121983_rabbitmq_1 (091c817509d904e1f5b30391bb05a63e6a4d873664908aa2bdb80687fd44f394): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5672:tcp:172.21.0.2:5672: input/output error
ERROR: for basket.data Cannot start service basket.data: driver failed programming external connectivity on endpoint dockercompose3557121983_basket.data_1 (a50b713df5ddbc9a00e5016cb7ef98518b7de794a71df684cad009fbacad1927): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:6379:tcp:172.21.0.4:6379: input/output error
Encountered errors while bringing up the project..
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting ---> Microsoft.DotNet.Docker.CommandLineClientException: The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
Creating network "dockercompose3557121983_default" with the default driver
Building webstatus
Building locations.api
Building payment.api
Building graceperiodmanager
Building identity.api
Building basket.api
Building webspa
Building marketing.api
Building ordering.api
Building catalog.api
Building webmvc
Creating dockercompose3557121983_basket.data_1 ...
Creating dockercompose3557121983_nosql.data_1 ...
Creating dockercompose3557121983_sql.data_1 ...
Creating dockercompose3557121983_rabbitmq_1 ...
Creating dockercompose3557121983_webstatus_1 ...
Creating dockercompose3557121983_nosql.data_1
Creating dockercompose3557121983_basket.data_1
Creating dockercompose3557121983_sql.data_1
Creating dockercompose3557121983_rabbitmq_1
Creating dockercompose3557121983_webstatus_1
[1A[2K
Creating dockercompose3557121983_sql.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_sql.data_1 Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_sql.data_1 (289aa371b17c67723457229960ef35194ba09331b2030cc6dbf7c8f7fc8e247c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5433:tcp:172.21.0.2:1433: input/output error
[1A[2K
Creating dockercompose3557121983_webstatus_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_webstatus_1 Cannot start service webstatus: driver failed programming external connectivity on endpoint dockercompose3557121983_webstatus_1 (8dae4b2e4160117389f9f080c31ab0e7585b0f2b934f1023310cc9a7979567d6): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5107:tcp:172.21.0.3:80: input/output error
[1A[2K
Creating dockercompose3557121983_basket.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_basket.data_1 Cannot start service basket.data: driver failed programming external connectivity on endpoint dockercompose3557121983_basket.data_1 (a50b713df5ddbc9a00e5016cb7ef98518b7de794a71df684cad009fbacad1927): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:6379:tcp:172.21.0.4:6379: input/output error
[1A[2K
Creating dockercompose3557121983_rabbitmq_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_rabbitmq_1 Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3557121983_rabbitmq_1 (091c817509d904e1f5b30391bb05a63e6a4d873664908aa2bdb80687fd44f394): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5672:tcp:172.21.0.2:5672: input/output error
[1A[2K
Creating dockercompose3557121983_nosql.data_1 ... [31merror[0m
[1B
ERROR: for dockercompose3557121983_nosql.data_1 Cannot start service nosql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_nosql.data_1 (2bbafa382790fe2094b1863066b3a6d19cf24a0664c5b9335c43c19e0e59a817): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.21.0.3:27017: input/output error
ERROR: for webstatus Cannot start service webstatus: driver failed programming external connectivity on endpoint dockercompose3557121983_webstatus_1 (8dae4b2e4160117389f9f080c31ab0e7585b0f2b934f1023310cc9a7979567d6): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5107:tcp:172.21.0.3:80: input/output error
ERROR: for sql.data Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_sql.data_1 (289aa371b17c67723457229960ef35194ba09331b2030cc6dbf7c8f7fc8e247c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5433:tcp:172.21.0.2:1433: input/output error
ERROR: for nosql.data Cannot start service nosql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_nosql.data_1 (2bbafa382790fe2094b1863066b3a6d19cf24a0664c5b9335c43c19e0e59a817): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.21.0.3:27017: input/output error
ERROR: for rabbitmq Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3557121983_rabbitmq_1 (091c817509d904e1f5b30391bb05a63e6a4d873664908aa2bdb80687fd44f394): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5672:tcp:172.21.0.2:5672: input/output error
ERROR: for basket.data Cannot start service basket.data: driver failed programming external connectivity on endpoint dockercompose3557121983_basket.data_1 (a50b713df5ddbc9a00e5016cb7ef98518b7de794a71df684cad009fbacad1927): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:6379:tcp:172.21.0.4:6379: input/output error
Encountered errors while bringing up the project.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.DockerComposeClient.
--- End of inner exception stack trace ---
at Microsoft.DotNet.Docker.DockerComposeClient.
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.DockerWorkspace.
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.
@CESARDELATORRE I've pulled the latest version and CLI it's still not working (uploaded log from the build container).
[SOLVED] Now, I'm also having problems (VS2017) with the Ordering Microservices connecting to SQL Server container, although SQL Server instance is accessible (tested with SSMS). Still debugging the issue...
Thanks,
Pedro
@danuanindito No, you don't need to configure the AZURE env-vars for a local Docker deployment in your dev machine.
Those are just warnings. Those AZURE env-vars are only needed if you want to deploy resoruces (DBs, Service Bus, etc.) in Azure.
Looks like an issue with the SQL container:
ERROR: for dockercompose3557121983_sql.data_1 Cannot start service sql.data: driver failed programming external connectivity on endpoint dockercompose3557121983_sql.data_1 (289aa371b17c67723457229960ef35194ba09331b2030cc6dbf7c8f7fc8e247c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5433:tcp:172.21.0.2:1433: input/output error
Please, make sure you configured Docker assigning the minimum amount of memory, etc. following all the steps described here:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/02.-Setting-eShopOnContainers-in-a-Visual-Studio-2017-environment
-1 (VS2017), Windows 10, 16 GB RAM
Compile error while trying to run Docker project using VS2017
@vinothbellie What compilation error are you getting?
We're testing the solution on a daily basis so a compilation error in VS2017 might be related to the dev environment. What specific compilation error are you getting?
@CESARDELATORRE thank you for your reply. I have configure docker by assigning the minimum amount of memory, etc. But I still get an error. It is shown at this file:
..\eShopOnContainers\src\Services\Identity\Identity.API\Startup.cs
with pop up:
An exception of type 'System.AggregateException' occurred in System.Private.CoreLib.ni.dll but was not handled in user code occurred
at line:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
InitializeGrantStoreAndConfiguration(app).Wait();
...
}
I'm using Windows 10, 16GB RAM
Any idea why this might be happening?
Thanks.

I am getting compile error when I try to run Docker Compose startup project.
Using VS2017 Community, 16 Gig RAM and Windows 10 Pro
Severity Code Description Project File Line Source Suppression State
Error MSB4018 The "PrepareForLaunch" task failed unexpectedly.
Microsoft.DotNet.Docker.CommandLineClientException: The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
Creating network "dockercompose3674721571_default" with the default driver
Building webstatus
Building locations.api
Building payment.api
Building graceperiodmanager
Building identity.api
Building basket.api
Building webspa
Building marketing.api
Building ordering.api
Building catalog.api
Building webmvc
Creating dockercompose3674721571_sql.data_1 ...
Creating dockercompose3674721571_nosql.data_1 ...
Creating dockercompose3674721571_basket.data_1 ...
Creating dockercompose3674721571_rabbitmq_1 ...
Creating dockercompose3674721571_webstatus_1 ...
Creating dockercompose3674721571_sql.data_1
Creating dockercompose3674721571_nosql.data_1
Creating dockercompose3674721571_basket.data_1
Creating dockercompose3674721571_rabbitmq_1
Creating dockercompose3674721571_webstatus_1
[1A[2K
Creating dockercompose3674721571_sql.data_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_basket.data_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_webstatus_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_rabbitmq_1 ... [31merror[0m
[1B
ERROR: for dockercompose3674721571_rabbitmq_1 Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3674721571_rabbitmq_1 (d81e7cd1744baab5b7bd2a1e36402b92fad0c96f745d85e4f17365c198fa7cf9): Error starting userland proxy: Bind for 0.0.0.0:5672 failed: port is already allocated
Creating dockercompose3674721571_identity.api_1 ...
[1A[2K
Creating dockercompose3674721571_nosql.data_1 ... [32mdone[0m
[1BCreating dockercompose3674721571_identity.api_1
[1A[2K
Creating dockercompose3674721571_identity.api_1 ... [32mdone[0m
[1B
ERROR: for rabbitmq Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3674721571_rabbitmq_1 (d81e7cd1744baab5b7bd2a1e36402b92fad0c96f745d85e4f17365c198fa7cf9): Error starting userland proxy: Bind for 0.0.0.0:5672 failed: port is already allocated
Encountered errors while bringing up the project..
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting ---> Microsoft.DotNet.Docker.CommandLineClientException: The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
Creating network "dockercompose3674721571_default" with the default driver
Building webstatus
Building locations.api
Building payment.api
Building graceperiodmanager
Building identity.api
Building basket.api
Building webspa
Building marketing.api
Building ordering.api
Building catalog.api
Building webmvc
Creating dockercompose3674721571_sql.data_1 ...
Creating dockercompose3674721571_nosql.data_1 ...
Creating dockercompose3674721571_basket.data_1 ...
Creating dockercompose3674721571_rabbitmq_1 ...
Creating dockercompose3674721571_webstatus_1 ...
Creating dockercompose3674721571_sql.data_1
Creating dockercompose3674721571_nosql.data_1
Creating dockercompose3674721571_basket.data_1
Creating dockercompose3674721571_rabbitmq_1
Creating dockercompose3674721571_webstatus_1
[1A[2K
Creating dockercompose3674721571_sql.data_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_basket.data_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_webstatus_1 ... [32mdone[0m
[1B[1A[2K
Creating dockercompose3674721571_rabbitmq_1 ... [31merror[0m
[1B
ERROR: for dockercompose3674721571_rabbitmq_1 Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3674721571_rabbitmq_1 (d81e7cd1744baab5b7bd2a1e36402b92fad0c96f745d85e4f17365c198fa7cf9): Error starting userland proxy: Bind for 0.0.0.0:5672 failed: port is already allocated
Creating dockercompose3674721571_identity.api_1 ...
[1A[2K
Creating dockercompose3674721571_nosql.data_1 ... [32mdone[0m
[1BCreating dockercompose3674721571_identity.api_1
[1A[2K
Creating dockercompose3674721571_identity.api_1 ... [32mdone[0m
[1B
ERROR: for rabbitmq Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose3674721571_rabbitmq_1 (d81e7cd1744baab5b7bd2a1e36402b92fad0c96f745d85e4f17365c198fa7cf9): Error starting userland proxy: Bind for 0.0.0.0:5672 failed: port is already allocated
Encountered errors while bringing up the project.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.DockerComposeClient.
--- End of inner exception stack trace ---
at Microsoft.DotNet.Docker.DockerComposeClient.
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.DockerWorkspace.
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.
@vinothbellie
Seems than some other program is using the port 5672.
First, ensure that you don't have any docker container running with this port mapped. Type docker ps from CLI and ensure that there is no container using the host port 5672.
If not, maybe any other program is using this port on your machine. From CLI type nestat -fb and look for any "local entry" with the 5672 port and you'll found which executable is using the port.
Thanks Eiximenis - I was running Erlang in port 5672 and it solved the original port mapping issue.
However, when I try to run the Docker Compose, getting the below error.
Starting: "docker" exec -i b2e92a57f8f5 /clrdbg/vsdbg/vsdbg --interpreter=mi
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/clrdbg/vsdbg/vsdbg\": stat /clrdbg/vsdbg/vsdbg: no such file or directory"
"docker" exited with code 126 (0x7E).
+1 Works now.
The issues were:
+1 (VS2017)
It works now. I have to reconfigure the connection string, since I changed the password of user "sa"
Im trying to deploy using kubernetes. I had this working in the past but have started from scratch and deploy.ps1 now requires:
[parameter(Mandatory=$true)][string]$configFile,
What does configFile refer to?
Thanks
Hi @chriscooper87
This parameter refers to the configuration file that contains the externalcfg config map. Is used to allow deployments of k8s for different environments (i.e. having sql or redis in Azure).
For a "standard" deployment (when all containers run in k8s) use -configFile ./conf_local.yml
For more info: https://github.com/dotnet-architecture/eShopOnContainers/wiki/10.-Setting-the-solution-up-in-ACS-Kubernetes#configmaps or in https://github.com/dotnet-architecture/eShopOnContainers/blob/master/k8s/README.k8s.md
Thx
following this tutorial to get started: link
executing: docker-compose build
result:
Building ordering.api
Step 1/6 : FROM microsoft/aspnetcore:1.1.2
---> 580052551fbc
Step 2/6 : ARG source
---> Using cache
---> e131aa5caff4
Step 3/6 : WORKDIR /app
---> Using cache
---> cc0325a6e9fc
Step 4/6 : EXPOSE 80
---> Using cache
---> 08b2859e9190
Step 5/6 : COPY ${source:-obj/Docker/publish} .
ERROR: Service 'ordering.api' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder441200074/obj/Docker/publish: no such file or directory
+1 (VS 2017), Windows 10 pro, 32 GB RAM.
Only hiccup I faced was during the SPA build. npm install [email protected] cleared it up for me.
-1 (VS2017)
[...]
ERROR: for dockercompose859346032_payment.api_1 Cannot start service payment.api: error while creating mount source path '/C/Users/AndreasLundgren/Documents/GitHub/eShopOnContainers/src/Services/Payment/Payment.API': mkdir /C/Users/AndreasLundgren/Documents: permission denied
[...]
And a bunch more similiar permission denied messages. Running visual studio as admin makes no difference and giving permission to all users to these folders also makes no difference.
Might be a docker problem rather than visual studio problem though.
UPDATE 1:
So if anyone else has the same issue this turned out to be caused by the (utterly insane) way admin permission works in windows 10. If you create a new user to run docker drive sharing as (which is required on windows 10 when using for instance an azure AD account) then even if you give that account admin rights that doesn't actually give it access to other users user-folder. My own in this case. So you have to explicity give that user permission even though it's an admin user.
Still can't actually run the store though but this at least fixes the permission issue above.
@alundgren Looks like a Docker environment issue.
Greetings, I followed instructions and when run eShopOnContainers-ServicesAndWebApps.sln, I get following error
[...]
Severity Code Description Project File Line Suppression State
Error The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
The DOCKER_BUILD_SOURCE variable is not set. Defaulting to a blank string.
Creating network "dockercompose16838645363011213331_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder932816264/obj/Docker/publish: no such file or directory.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 346
[...]
Can you help me what is the issue here? Thanks.
Hi everyone 👍 Which tutorial do you recommend, where I can build such applications (or less extensive) from scratch?
@unluckycode - If you mean about microservices, read the book/guide: https://aka.ms/microservicesebook , also try the deployment here: https://github.com/dotnet-architecture/eShopOnContainers/wiki/02.-Setting-eShopOnContainers-in-a-Visual-Studio-2017-environment
Any idea, why i am getting this error? Any help will be appreciated... Thanks.
...
Severity Code Description Project File Line Suppression State
Error The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
The DOCKER_BUILD_SOURCE variable is not set. Defaulting to a blank string.
Creating network "dockercompose12815755332077484119_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder292885962/obj/Docker/publish: no such file or directory.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 346
...
@satishbyali - Looks like a Docker environment issue..
I'm today working with the latest version of eShopOnContainers from the DEV branch, with no issues.
Note that the AZURE environment variables are not needed for a local deployment to a local Docker environment. They are only needed when deploying resources/infrastructure in Azure.
Your error "Creating network "dockercompose12815755332077484119_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder292885962/obj/Docker/publish: no such file or directory."
looks like a Docker environment error or that the compilation/publish of the webstatus microservice failed and then Docker is not able to get the bits...
Are you seeing any other error related to the 'webstatus' compilation and publish?
Are you able to deploy any other Docker project (Hello World) in the same PC?
@CESARDELATORRE Thank you for quick response. After your instructions I worked upon "Hello World", it works fine...
...
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4393a01d864d mydemos:aspnetcorehelloworld "dotnet run" 17 minutes ago Up 17 minutes 0.0.0.0:8080->5000/tcp clever_leakey
...
Also uninstalled and reinstalled VS 2017 only with - workloads:
1) ASP.NET and web development
2) .NET Core cross-platform development
Also new clone of repo.
I'm only testing "eShopOnContainers-ServicesAndWebApps.sln"
Still I get the same error..
...
Severity Code Description Project File Line Suppression State
Error The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
The DOCKER_BUILD_SOURCE variable is not set. Defaulting to a blank string.
Creating network "dockercompose16838645363011213331_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder277113783/obj/Docker/publish: no such file or directory.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 346
...
Let me know if additional details required. Appreciate any pointers to resolve. Thanks.
Hi @dongdongmao
Could you please execute the following command to remove packages and cache and do reinstall?
rimraf node_modules
npm cache clean
npm install
Thanks.
@CESARDELATORRE Any updates on my issue... I'm stuck at this level... no luck yet. Let me know. Thanks.
@satishbyali Sorry, I've no updates, we're not reproducing your development environment issue in our dev machines..
Can you confirm you are not in a network "under a proxy" in order to reach Nuget in the Internet? (related issue): https://github.com/dotnet-architecture/eShopOnContainers/issues/224
Are you sure you shared the drives from Docker settings like here?:

Can you try in a different dev machine just to isolate the issue's context?
@CESARDELATORRE As I researched further I found... the "eShopOnContainers-ServicesAndWebApps.sln" is not getting published. Not sure, how to build so many projects before calling docker. Any pointers?
@satishbyali - Are you using VS 2017? - If so, you just need to right click on the docker-compsoe project and set it as the "default project" (as specified in the instructions), then hit F5 or "Run without debugging" and VS should build all the bits, create images and finally deploy all the containers in Docker and run the app.
It is a "F5" experience if the development/Docker environment is properly configured. :)
@CESARDELATORRE - I am having the same issue as @satishbyali .
Here is a bit of information about my installation:
Let me know if you need additional information. I am looking forward to get started.
Thanks
...
Severity Code Description Project File Line Suppression State
Error The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
The DOCKER_BUILD_SOURCE variable is not set. Defaulting to a blank string.
Creating network "dockercompose1792766927729996030_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder440408736/obj/Docker/publish: no such file or directory.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 346
...
@andrelieb I've been able to reproduce the error.. It initially looks like a bug in VS 2017 15.3.1 Tools for Docker... But still need to do more testing about it.
However, in my machines with VS2017 15.3.0, it works like a charm.
In a machine with VS2017 15.3.1, I'm getting the same error...I'll come back with further news.
In the meantime, not sure if you are able to downgrade and install VS2017 15.3.0 instead VS2017 15.3.1...
Can you guys confirm your version of VS 2017 15.3.x and if it is working for you or not?
@CESARDELATORRE I just checked at my end, it's VS2017 15.3.0... still getting same error. See attached Error screen-print.
@CESARDELATORRE, @andrelieb also I wanted to bring your attention to same issue mentioned here in FAQ section under.... "Bugs or warnings found when compiling the project" but with not much details... https://github.com/dotnet-architecture/eShopOnContainers/wiki/99.-FAQ-(Frequently-Asked-Questions)
@andrelieb and @satishbyali, I am struggeling with the same problem. I am new to all containers, but it looks like a missing publish folder might indicate that a dotnet publish command was never run.
Looking in the docker-compose.ci.build.yml, the command with dotnet restore/dotnet publish has been commented out (replaced by another command build-bits-linux.sh). Still, toggling the two lines has no effect on my side...
Maybe just a shot in the dark?
EDIT: It was just a shot in the dark. The linux script does contain the dotnet publish command and should be working fine. (I cannot see any output from this script on my mashine however, it's supposed to be writing "Working on" etc. How can I verify it's executed?)
EDIT2: I noticed the article referenced above describes that when using F5 in VS2017, projects should not be built published, and such you should not see this error. Still, every Dockerfile does have this command: "COPY ${source:-obj/Docker/publish} .", which will fail if there is no such directory. If you simply remove this line from the WebStatus app, you'll notice the build process will move on and give the same error for the WebSPA app. Can someone confirm if projects shouldn't be built, and if so, should the publish folder be faked somehow?
Hi,
I'm having the exact same problem with VS2017 (Build 15.3.1)... Like @satishbyali and @andrelieb
@pmsousa @satishbyali and @andrelieb: Hi!, good news!, we have fixed this issue today. It was related to a new way of managing the docker-compose debug/release files from Visual Studio Tools for Docker v2.0 which is coming in the latest bits of VS2017 15.3.0 and 15.3.1. Not sure why in some versions of VS2017 15.3.0 it was working like the older versions of VS2017 15.1 and 15.2, though.. In any case, the fix is already pushed in GitHub and it should work now in the latest versions of VS2017 15.0 and 15.1.
Note that because of this change in Docker Tools, older versions of VS2017 like 15.1 and 15.2 might not work now. The requirement is now VS2017 15.3.0 or 15.3.1.
The fix commit is this: commit https://github.com/dotnet-architecture/eShopOnContainers/commit/820f8bd4b9b6e3048c0a87a2389cc468c100b60a
Please, confirm if it is working for you now, after pulling the new code, ok?
Thanks for the feedback! :)
@CESARDELATORRE, Hi.... this is great news.... I can confirm, now it is working at my end. See below screen-print. Steps: Just re-cloned the project and hit F5 (the magic moment). I will continue testing it further... Thanks again and regards.
+1 (VS2017 15.3.1) Win10 Pro
@CESARDELATORRE Thanks a lot for the fix!
+1 (VS2017 15.3.1)
@CESARDELATORRE The fix works like a charm, thanks!
Hi @CESARDELATORRE,
After having some problems with the start of the containers (I've updated before the Docker for Windows and the update reset my mem config!!!), I finally managed to find why the SQL container failed to start. Fixed the settings and all containers run but there's a auth error on the SQL Server login:
Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.SqlClient.dll
[41m[1m[37mcrit[39m[22m[49m: GracePeriodManager.Services.ManagerService[0]
FATAL ERROR: Database connections could not be opened: Cannot open database "Microsoft.eShopOnContainers.Services.OrderingDb" requested by the login. The login failed.
Login failed for user 'sa'.
[41m[1m[37mcrit[39m[22m[49m: GracePeriodManager.Services.ManagerService[0]
FATAL ERROR: Database connections could not be opened: Cannot open database "Microsoft.eShopOnContainers.Services.OrderingDb" requested by the login. The login failed.
Login failed for user 'sa'.
The SQL Server container is runnig:

I've searched the code for the connection string:
"DefaultConnection": "Server=tcp:127.0.0.1,5433;Database=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word;"
Tried with SSMS to connect but the error was the same. After a few minutes, did a new retry and SSMS managed to connect and VS2017 build was OK!!!!
I'll try to add an HEALTHCHECK to the docker-compose.yml for SQL Server container, then check back with you...
+1 (VS2017 15.3.1)
Hi again,
One of the "problems" I've found... The SQL Server container is taking a while to start because after pulling the images and starting the container, the SQL Server instance is upgrading the system databases!!! 8)
Only after that, the instance is available... The other containers try to connect to the databases but they don't existe yet, so the login errors!
2017-08-22 13:37:57.12 spid7s Starting up database 'master'.
2017-08-22 13:38:00.86 spid7s The tail of the log for database master is being rewritten to match the new sector size of 4096 bytes. 3072 bytes at offset 418816 in file /var/opt/mssql/data/mastlog.ldf will
be written.
2017-08-22 13:38:01.96 spid7s Converting database 'master' from version 862 to the current version 869.
2017-08-22 13:38:01.97 spid7s Database 'master' running the upgrade step from version 862 to version 863.
2017-08-22 13:38:02.75 spid7s Database 'master' running the upgrade step from version 863 to version 864.
2017-08-22 13:38:03.30 spid7s Database 'master' running the upgrade step from version 864 to version 865.
2017-08-22 13:38:03.47 spid7s Database 'master' running the upgrade step from version 865 to version 866.
2017-08-22 13:38:03.59 spid7s Database 'master' running the upgrade step from version 866 to version 867.
2017-08-22 13:38:03.63 spid7s Database 'master' running the upgrade step from version 867 to version 868.
2017-08-22 13:38:03.66 spid7s Database 'master' running the upgrade step from version 868 to version 869.
Proposed HEALTHCHECK
sql.data:
image: microsoft/mssql-server-linux
environment:
- SA_PASSWORD=Pass@word
- ACCEPT_EULA=Y
healthcheck:
test: /opt/mssql-tools/bin/sqlcmd -S '127.0.0.1' -U SA -P 'Pass@word' -Q 'select 1'
-1 (Both)
Windows 10 Pro, 16 GB RAM
Docker 17.06 (8 GB RAM, 3 CPUs, C: drive shared)
Tried CLI and VS Code initially (without VS installation) - compilation fails
Installed VS 2017 Pro v15.3.2 - compilation fails
I get Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder659647588/obj/Docker/publish: no such file or directory. both using the CLI and VS 2017.
Here's the error from my latest attempt in VS2017:
The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
The DOCKER_BUILD_SOURCE variable is not set. Defaulting to a blank string.
Creating network "dockercompose14430532785411818041_default" with the default driver
Building webstatus
Service 'webstatus' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder659647588/obj/Docker/publish: no such file or directory.
For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting
Hi @polys
Are you pull latest dev branch? The error is the same is resolved yesterday and It was related to a new way of managing the docker-compose debug/release files from Visual Studio Tools for Docker v2.0 which is coming in the latest bits of VS2017 15.3.0 and 15.3.1. Not sure why in some versions of VS2017 15.3.0 it was working like the older versions of VS2017 15.1 and 15.2, though.. In any case, the fix is already pushed in GitHub and it should work now in the latest versions of VS2017 15.0 and 15.1.
Note that because of this change in Docker Tools, older versions of VS2017 like 15.1 and 15.2 might not work now. The requirement is now VS2017 15.3.0 or 15.3.1.
The fix commit is this: commit 820f8bd
Thanks @unaizorrilla
I did pull the latest changes today but I think I've only tried master. I was trying dev yesterday unsuccessfully and decided to switch to master assuming that will be more stable.
dev seems to work now on latest VS 2017 (15.3.2) and latest Docker (17.06.1-ce-win24).
perfect
eventually, +1 VS2017 on Win10, Docker 17.06.1:
After the first compile and startup, I was struggling for a while with this error (also mentioned a few times before, but with no apparent solution):
_IDX10803: Unable to obtain configuration from: 'http://10.0.75.1:5105/.well-known/openid-configuration'._
Investigating this, I found that the request for this address worked from a local browser, but not from another container. Looking into the firewall rules of the ps-script gave no results, but disabling the vpnkit block rules (probably installed by Docker CE) solved the problem!
(I am not quite sure if the rules applied by this project was intended to fix this or not, and/or if my system is any different from any default system with Docker CE, but maybe anyone can confirm. Sorry for spamming this topic, but it is apparently the only hit for "IDX10803")
EDIT: Just realized how obvious this is: Upon first start-up of the project, you'll get a default firewall-prompt by windows, asking to allow vpnkit to access network resources. If you're in a domain network, the default is to allow for domain network, and to block for public profile. However, from inside the docker containers, the request appears to be on public profile, so these rules will cause some trouble
+1 VS2017 Windows CLI. Great work and demonstration
-1 (Both) for dev branch
@isabasan What are your issues?
Did you follow the setup procedures at the Wiki?
From: isabasan
Sent: Wednesday, September 13, 12:27 PM
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
To: dotnet-architecture/eShopOnContainers
Cc: Cesar De la Torre Llorente, Mention
-1 (Both) for dev branch
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet-architecture%2FeShopOnContainers%2Fissues%2F107%23issuecomment-329271548&data=02%7C01%7Ccesardl%40microsoft.com%7Ca326b99f84c744417a6308d4fadd7a73%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636409276527215845&sdata=aByTAb0wJSR8E0ohN%2BTAVAqiXW112381Dl8ioZPDVm0%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABoh-6WPG0vcBhNQKimADbRyp6pqp_ANks5siCyigaJpZM4MYiVq&data=02%7C01%7Ccesardl%40microsoft.com%7Ca326b99f84c744417a6308d4fadd7a73%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636409276527215845&sdata=pXPlzxXY%2BWKbwo69jPNV1yva8xVPepm5prkeA1wiH24%3D&reserved=0.
@CESARDELATORRE I've tried cli and VS. I got more than 200 errors and many of them were about package versioning. I've updated my VS on one of my computers. Now this one did not get any error and compiled on VS. I dont understand if its about VS version ?
I dont have enough time today. I'll check it again. And I will check it on other computer again. Then I can share some detailed information.
Thx for your commitment.
For CLI:
As described in Main Steps of wiki,
- Git clone https://github.com/dotnet/eShopOnContainers.git
- Docker-compose -f docker-compose.ci.build.yml up
- Docker-compose up
I've got this error:
C:\Users\i*\Desktop\eShopOnContainers-dev - Copy>Docker-compose -f docker-compose.ci.build.yml up
Creating network "eshoponcontainersdevcopy_default" with the default driver
ERROR: HNS failed with error : The parameter is incorrect.
+1 (VS2017)
+1 👍
It took some time though. At some point the .pfx was b0rken. I made a fork where it didn't work. Downloading from this repo and putting it over the previous one worked. I then did a git add . and Git immediately told me there were no changes to the repo. It worked from that moment forward. Quite weird. Could it perhaps have to do with this commit that @ramonsmits submitted (and I just created the PR for).
When pressing 'F5' with the 'docker-compose' project selected as 'Startup Project' I get the following error. Any idea what is in invalid format?
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : Creating network "dockercompose2643731876379705798_default" with the default driver
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : Building webstatus
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : invalid reference format.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error :
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting
1>Done building project "docker-compose.dcproj" -- FAILED.
+1 (VS2017)
-1 (CLI)
-1 (Both)
CLI error
ERROR: Service 'identity.api' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder421846589/obj/Docker/publish: no such file or directory
ENV
Windows 10.0.14393
Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
16GB
@audipen Looks like a Docker environment issue. Does it work/deploy a hello world project created with a plain template with VS2017 in that same machine?
Do you have Docker for Windows running with Linux containers or Windows Containers? By default, in our solution, it should be Linux containers (Switch to Linux Containers from Docker for Widows)
@CESARDELATORRE I created a ASP.NET Core Web App (following this link - https://blogs.msdn.microsoft.com/webdev/2016/11/16/new-docker-tools-for-visual-studio/) and could successfully run it in Docker in a Linux container.
And yes, I tried running the solution in a Linux container when I got that error.
Here is the closest to the error that I could find - https://github.com/moby/moby/issues/25599
Any other ideas?
Here is the error (more details) again -
1>docker-compose -f "D:\GitRepos\eShopOnContainersdocker-compose.yml" -f "D:\GitRepos\eShopOnContainers\docker-compose.override.yml" -f "D:\GitRepos\eShopOnContainers\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose2643731876379705798 up -d --build
1>The ESHOP_SERVICE_BUS_USERNAME variable is not set. Defaulting to a blank string.
1>The ESHOP_SERVICE_BUS_PASSWORD variable is not set. Defaulting to a blank string.
1>The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
1>The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
1>The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
1>The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
1>The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
1>Creating network "dockercompose2643731876379705798_default" with the default driver
1>Building webstatus
1>invalid reference format
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_SERVICE_BUS_USERNAME variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_SERVICE_BUS_PASSWORD variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : Creating network "dockercompose2643731876379705798_default" with the default driver
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : Building webstatus
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : invalid reference format.
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error :
1>C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(348,5): error : For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting
1>Done building project "docker-compose.dcproj" -- FAILED.
So finally figured out the issue. After comparing the docker-compose file with a 'Hello World' application I realised that the 'image' tag in the docker-compose was causing the 'invalid reference format' error.
For example in the definition of the 'basket' microservice the 'image' has the following value.
basket.api:
image: eshop/basket.api:${TAG:-latest}
If I remove ':${TAG:-latest}' everything runs as expected. Not sure what the problem with the value is though. Still not that docker proficient. I removed this tagging for all service entries.
@audipen The issue with the ${TAG:-latest} was a bug in the VS Docker tools. It's fixed in the VS 2017 15.4 update (currently in preview).
--1 (Both) on Win10 Pro, RAM 32GBI
I'm having the same problem as @richardrcruzc :
when click on LOGIN after a while got this error:
An unhandled exception occurred while processing the request.
TaskCanceledException: A task was canceled.
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
IOException: IDX10804: Unable to retrieve document from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever+d__8.MoveNext()
InvalidOperationException: IDX10803: Unable to obtain configuration from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.ConfigurationManager+d__24.MoveNext()
@sgreenmsft So with VS 15.4 ${TAG:-latest} is no longer necessary? I noticed that after upgrading VS the invalid reference format error occurs. Removing the tagging from docker-compose.yml solves the problem.
@MarcinHoppe - Sorry, I see my previous comment was a bit ambiguous. What I meant was that there's a bug in VS 2017 15.3, which causes the "invalid reference format" error to occur if the image name specified in the docker-compose file contains a tag. That bug is fixed in VS 2017 15.4. As for whether a tag is necessary -- no, it's not formally necessary to have a tag, but most people find them useful.
@PehrGit and @richardrcruzc
That issue might happen if, for any reason (race condition of the containers in your local Docker host), the SQL Server container was still not ready when the Identity microservice was populating its data structure and data...
I updated the code (this commit) by implementing further resiliency to the SQL connections (we didn't have it for all SqlConnections) so now most of the microservices' sqlOptions are set with Retries with exponential backoff for the SqlConnection so those errors when spinning the SQL container late for them shouldn't happen.
Please, pull the new code from GitHub and confirm if this is fixed for you or you are still having this issue, ok?
@sgreenmsft It still does not work for me on 15.4. I needed to remove the tag from docker-compose.yml to make it build after upgrading VS to 15.4.
@CESARDELATORRE thanks for the quick reply!
I did a fresh clone and unfortunately it still isn't working. Same error as before
Hi,
The ${TAG:-latest} used in the docker-compose.yml file is to allow building images using an specified tag (by just setting the TAG environment variable). I. e. this is used in kubernetes deployment script: images are built against specific tag and this tag is deployed in the cluster. That allows deploy specific versions in the cluster.
Issue is with Docker Tools in 15.4. In Debug, VS generates the /obj/docker-compose.vs.debug.g.yml file. This file is also used (alongside the docker-compose.yml) when VS invokes compose. In 15.3 and previous, the docker-compose.vs.debug.g.yml had always the tag :dev in the images, no matter what the tag were used in docker-compose.yml. This is the reason why always the images generated by VS had the dev tag.
In 15.4 the behavior seems to be different: In 15.4 the value :dev is appended to the image name always in the docker-compose.vs.debug.g.yml generated. If docker-compose.yml has no tags, this result having the :dev tag and the behavior is the same of 15.3. But, if docker-compose.yml has one tag, the result is that the docker-compose.vs.debug.g.yml ends having something like: image-name:tag1:dev (where tag1 is the tag that is in docker-compose.yml).
Also it seems to evaluate environment variables. In my case I ended up with something like webstatus:master:dev. The master is the result of evaluating ${TAG:-master} (as I don't have the TAG environment variable declared.
IMHO this is a bug of the 15.4 Docker Tools. If they want to use always the dev tag, the good behavior is the one that was in 15.3 (ignoring any tag in docker-compose.yml). Current behavior makes no sense.
@eiximenis Thanks, this explains the behavior I see after upgrading to VS 15.4.
Thanks, @eiximenis - It appears that I had a mental off-by-one error. This behavior is a bug in 15.4 and is fixed in 15.5 preview 1.
i've tried to follow the experiences of others, but has anyone (recently) go this to work in any flavor on a mac? i've tried the **.ci.build.yml, i've tried doing the mac-cli with a new docker-compose/build/run and it's always something. feels like this should work out the box in some way.... feels bloated and over complicated for a container demo.....
@kurtcrowley - Sorry, the Mac environment must have not been tested recently as often as we do with the Windows dev environment with CLI or Visual Studio.
If you have issues with the "build container" (https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/docker-compose.ci.build.yml) because there's a bug in dotnet CLI stdout when compiling from within a container, you can also try compiling the dotnet bits from the Mac with this script: https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/cli-mac/build-bits.sh
That would produce the binaries you need to create the images.
After you have the bits in place, you just need to do a:
docker-compose up
within the rool folder.
However, I just saw that not all the projects are in that Mac bash script. You'd need to update it comparing that with this Windows Script: https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/cli-windows/build-bits.ps1
I might have a Mac available next week, so I'll review the environment and make sure it is working in a Mac. But, next week. I cannot do it until I have the Mac.
About what you say "_feels bloated and over complicated for a container demo.._".
Note that this is NOT just "a container demo". It is a Microservice Architecture based application that happens to be using containers. So, in order to demonstrate a Microservice Architecture, you need some level of complexity.
All the implemented patterns and chosen approaches are documented in this related book (300 pages) which drills down into specific pattern implementations:
https://aka.ms/microservicesebook
Please, feel free to provide further feedback here, within the ISSUES (create a new one for specific issue) or directly sending an email to me: [email protected]
Thanks,
If we're still doing the survey:
+1 (VS2017)
-1 (CLI)
Tried the CLI on Windows and Linux and Mac. All give the same variation of this error. Mac and Windows fail on identity.api and Linux on basket.api. Also tried the build-bits scripts and they fail on Mac and Linux.
Note that Windows and Linux were tested in VMs (Parallels).
Will try to update the build script for Mac based on @CESARDELATORRE's comment above and see if it will help.
Yes. The Mac environment is currently in bad state because of the following explanation, below.
The CLI in Windows, using the build-bits PowerShell script, works properly, though.
However, I'll try to set a workaround by updating the Mac build-bits bash scripts next week (I need a Mac for this), so at least we'll have a workaround until the bug in DOTNET CLI running within a build-container is publicly released.
Here's the current state:
The Mac environment was working properly, originally, but in the latest versions of the “dotnet CLI”, which is what we use when building from a BUILD CONTAINER, there’s a bug when running “dotnet publish” within a container.
Basically when running this:
docker-compose -f docker-compose.ci.build.yml up
That creates a Linux container to build the dotnet bits. There’s a bug in STDOUT from the dotnet CLI when running within a container:
https://github.com/Microsoft/msbuild/issues/2153#issuecomment-305375162
It’s been fixed in the .NET Core CLI source code, but that version still hasn’t been released in .NET Core:
https://github.com/dotnet/corefx/pull/23539
The build-bits.sh in the Mac should work ok, but I can see it is not updated to the latest microservices we added:
https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/cli-mac/build-bits.sh
NOTE: If you want the SPA app (Single Page Application) to be working, before building the .NET bits you need to follow these steps for compiling the JavaScript/Angular “side”:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/06.-Setting-the-Web-SPA-application-up
I’ll be able to fix this up next week when I’ll have a Mac to test it.
However, it should be similar to the projects being used in the Windows Script (CLI on Windows has been tested pretty recently):
https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/cli-windows
@kbaley , @kurtcrowley
I could get a Mac today and tested it also with Visual Studio for Mac. It worked good in VS for Mac, directly, out-of-the-box. Note that the first time you'd need to wait quite a few minutes to get all the Nuget packages restored plus the docker images pulled/downloaded from Docker Hub, etc. - Next times it starts a lot faster. Follow the instructions at the Wiki in order to set up the login/authentication, IP, etc. - Other than that you will only be able to see the home page but not authenticate, create orders, etc.
In any case, we'll continue testing further in Mac in the upcoming days.
See screenshot below:

Thanks @CESARDELATORRE. The PR I submitted got me going again but I'll keep VS for Mac in mind for future.
+1
From downloading VS Preview 15.5.0 Preview 2 to running the ServicesAndWebApps solution was 2.5 hours - that includes downloading the Docker images too! Great work on this.
2 issues:
@kbaley , @kurtcrowley - Btw, I tested eShopOnContainers in a MacBook and made extensive updates at the Wiki, so everything is clearer when working on a Mac.
I'm including build/deploy using the CLI and also by using just Visual Studio for Mac.
See here:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/04.-Setting-eShopOnContainer-solution-up-in-a-Mac,-VS-for-Mac-or-with-CLI-environment--(dotnet-CLI,-Docker-CLI-and-VS-Code)
If anyone catches something else, please send me feedback by creating a new specific issue at the repo.
Hope it helps! :)
thanks a bunch Cesar!
On Wed, Oct 25, 2017 at 9:09 PM, Cesar De la Torre <[email protected]
wrote:
@kbaley https://github.com/kbaley , @kurtcrowley
https://github.com/kurtcrowley - Btw, I tested eShopOnContainers in a
MacBook and made extensive updates at the Wiki, so everything is clearer
when working on a Mac.I'm including build/deploy using the CLI and also by using just Visual
Studio for Mac.See here:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/04.-
Setting-eShopOnContainer-solution-up-in-a-Mac,-VS-for-
Mac-or-with-CLI-environment--(dotnet-CLI,-Docker-CLI-and-VS-Code)If anyone catches something else, please send me feedback by creating a
new specific issue at the repo.
Hope it helps! :)—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-339519511,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG3B7JHVqHNMvzgBdtTOETMYCvxA7T-1ks5sv9vJgaJpZM4MYiVq
.
+1 on VS2017 Win 10 Pro after following the instruction. Nice job!
👎 could not start up project now.
- MacOS 10.13.2
- Docker 17.09.0-ce
- dotnet 2.0.2
- vs for Mac 7.3 preview
i follow the wiki 04. Setting eShopOnContainer solution up in a Mac, VS for Mac or with CLI environment (dotnet CLI, Docker CLI and VS Code)
but when i Hit Ctrl+F5 or press the "play" button in VS for Mac.
IDE tell me, i should set the INSTRUMENTATION_KEY, ORCHESTRATOR_TYPE, ESHOP_SERVICE_BUS_USERNAME ... and so on.
anybody can give me a link about how to start the project on local machine?
The Azure env bars are not needed in the by default local Deployment. They are just warnings.
What additional error are you getting after the warnings?
@geminiyellow - Hey! I just tested the latest version of eShopOnContainers in a clean Mac, with Docker for Mac and VS for Mac just installed, and it worked perfectly.
Are you sure you followed all the steps at the Wiki post?, especially the Docker config, assigned memory and cores?:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/04.-Setting-eShopOnContainer-solution-up-in-a-Mac,-VS-for-Mac-or-with-CLI-environment--(dotnet-CLI,-Docker-CLI-and-VS-Code)
Here, running it with Ctlr+F5 from VS for Mac:

And btw, follow the section "Configuring the app for Authentication and access from remote client apps (Remote access through the network)" at the end of the post if you want user Authentication to work.
@CESARDELATORRE thank you for you reply. yes, i follow the Wiki post step by step. and i try the cli. when use cli, as you say, They are just warnings.
WARNING: The INSTRUMENTATION_KEY variable is not set. Defaulting to a blank string.
WARNING: The ORCHESTRATOR_TYPE variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_SERVICE_BUS_USERNAME variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_SERVICE_BUS_PASSWORD variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_AZURE_STORAGE_CATALOG_NAME variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_AZURE_STORAGE_CATALOG_KEY variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_AZUREFUNC_CAMPAIGN_DETAILS_URI variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_AZURE_STORAGE_MARKETING_NAME variable is not set. Defaulting to a blank string.
WARNING: The ESHOP_AZURE_STORAGE_MARKETING_KEY variable is not set. Defaulting to a blank string.
but,
ERROR: Service 'basket.api' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder342645958/obj/Docker/publish: no such file or directory
PS: Docker config

@geminiyellow - That error: "ERROR: Service 'basket.api' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder342645958/obj/Docker/publish: no such file or directory" is because you didn't generate the eShopOnContainers .NET binaries.
After compiling, you should have the .DLLs within each project, like ../src/Services/Catalog/Catalog-API/obj/Docker/publish
If there are no .DLLs and binaries generated in those folders "obj/Docker/publish", Docker cannot create the Docker images, hence the error you are getting.
Please, try these options. Both should work:
A. Visual Studio for Mac. This should work "out-of-the-box" by just opening the specified solution and running with Ctrl+F5
B. CLI option, but using the OPTION B.2 in the wiki post, so running the bash Script to generate the bits/binaries before running docker-compose build or docker-compose up.
Search in the Wiki post for "B.2 - Building the application binaries on the local Mac (local .NET Core in Mac)".
You have to use the bash script:
Using the bash windows, navigate to your eShopOnContainers directory, and cd into the cli-mac directory. Then, run the build script:
$ ./build-bits.sh
But before running that script to compile, make sure you followed the previous steps within OPTION B.2.
I am currently setting my machine up for this.
Immediately I have an issue: Docker for Windows cannot work on Win10 Home, because it requires Hyper-V. I am trying with Docker toolbox, that uses Oracle VirtualBox.
I will update.
@MatteoPiovanelli-Laser - Docker Toolbox is kind of legacy from Docker and eShopOnContainers has not been tested on Docker toolbox. It might work, but we haven't tested on Docker Toolbox.
I'd recommend to use Windows 10 Professional with Hyper-V, so you could also test Windows Containers in addition to Linux Containers, and probably other new features in Docker that might not be supported in Docker Toolbox.
I will probably do that if I see that anything (setup, build, debug, develop...) becomes a burden, or even just annoying. In the meantime I am updating the vs2017 workloads, and that will take a while.
@MatteoPiovanelli-Laser - Btw, just for quick testing purposes without re-installing your local machines, you can also use Azure VMs, which no support nested Hyper-V, so you can install Docke for Windows and VS 2017 in a VM and test everything in there.
IMPORTANT: AFAIK, nested Hyper-V is supported only in the Dv3 and Ev3 VM sizes. Maybe more types/sizes, as this info is what I checked and tested in July 2017.
Check this out:
https://azure.microsoft.com/en-us/blog/nested-virtualization-in-azure/
That is perfect for Docker and VS2017 Dev/Test and demos.
Update:
DockerToolbox failed its own configuration, telling the Virtual Box it had installed had some bug. I will get rid of it and upgrade to W10 Pro.
+1 CLI
Windows 10 8GB RAM
Docker 4096 RAM
1- But I need to make it work on VS2017(15.4) because I need to debug, but I get this error when I try to run docker-compose project "eShopOnContainers can not find the container with the name starting with 'dockercompose8165015240647755004_basket_api'."
2- I get this error when I open eShopOnContainer.sln it gives me this error.

3- Also the eShopOnContainer.sln doesn't want to build if I kept test projects loaded but when I unload them It works, says It can't find references of the DLLs in debug bin and lists all the dlls.
Best regards,
@Steven-S-Francis
On the repo's readme there is a note about VS2017 version. 15.4 has a bug related to docker. Maybe that is what you are seeing?
@MatteoPiovanelli-Laser Maybe, I know they fixed it on 15.5 but I was wondering if there is a workaround to make it work?
or if there is a another way to debug the code within VS2017 while running inside Docker Container?
@Steven-S-Francis
You can make it work on VS 2017 15.4. You just need to delete the TAGs at all the docker-compose files.
So, instead of the following example:
basket.api:
image: eshop/basket.api:${TAG:-latest}
Just like:
basket.api:
image: eshop/basket.api
Delete all the :${TAG:-latest} in docker-compose.yml files
The bug in VS 2017 15.4.x is related to the TAGs, which should work in VS as it is a very common and good practice in Docker.
We use TAGs coming from environment variables, from our CI pipelines in VSTS or manually, so that's why we're maintaining the TAGs. It is a good practice in Docker.
@CESARDELATORRE
Thanks a lot, I will try it and get back to you.
About my 2 other issues, I would much appreciate it so much if you could help me fix those issues.
Update: I still get the same error when I run docker on vs2017

+1 (CLI) on Mac 10.13.1 via cli-mac/build-bits.sh
-1 (CLI) on Mac 10.13.1 via docker-compose -f docker-compose.ci.build.yml up
When build the project using docker container, the following error was raised:
ci-build_1 | /src/docker-compose.dcproj : error MSB4236: The SDK 'Microsoft.Docker.Sdk' specified could not be found.
ci-build_1 | /src/docker-compose.dcproj : warning NU1503: Skipping restore for project '/src/docker-compose.dcproj'. The project file may be invalid or missing targets required for restore. [/src/eShopOnContainers-ServicesAndWebApps.sln]
...
ci-build_1 | /usr/share/dotnet/sdk/2.0.2/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Publish.targets(109,5): error MSB3030: Could not copy the file "/src/src/Web/WebSPA/wwwroot/inline.ed5a1acf7d6c455a7d85.bundle.js" because it was not found. [/src/src/Web/WebSPA/WebSPA.csproj]
ci-build_1 | /usr/share/dotnet/sdk/2.0.2/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Publish.targets(109,5): error MSB3030: Could not copy the file "/src/src/Web/WebSPA/wwwroot/main.d9e5271e6a771bd5e830.bundle.js" because it was not found. [/src/src/Web/WebSPA/WebSPA.csproj]
ci-build_1 | /usr/share/dotnet/sdk/2.0.2/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Publish.targets(109,5): error MSB3030: Could not copy the file "/src/src/Web/WebSPA/wwwroot/vendor.4109fa33d695bf4c927c.bundle.js" because it was not found. [/src/src/Web/WebSPA/WebSPA.csproj]
...
eshoponcontainers_ci-build_1 exited with code 1
@CESARDELATORRE could you please take a look?
.dcproj file not only caused problems in build, when I open the eShopOnContains solution in Visual Studio for Mac, the editor complained .dcproj is a unknown project type.
Updated on 12/5/17
I solved the issue caused by compiling with microsoft/aspnetcore-build:2.0, after doing some research, I changed docker-compose.ci.build.yml to use microsoft/aspnetcore-build:1.0-2.0 image and everything works well now.
@LiangZugeng When using via docker-compose -f docker-compose.ci.build.yml up you might be hitting the bug we mentioned here:
https://github.com/dotnet-architecture/eShopOnContainers/wiki/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code)#option-a-approach-building-bits-from-a-linux-build-container-instead-of-the-local-windows-dev-machine
And here:
https://github.com/Microsoft/msbuild/issues/2153#issuecomment-305375162
So, when using the CLI, I suggest to use the path via cli-mac/build-bits.sh
Another upcoming possibility we'll have pretty soon is to use DOCKER-MULTISTAGE.
We'll migrate to that new approach as soon as VS 2017 15.5 is released as RTM (VS 15.5 Preview already supports it).
@CESARDELATORRE Fortunately I didn't get the issues you mentioned, I had no problems building the project with docker-compose and container on both Windows/Mac, the issue I encountered was the one I mentioned above and after I changed to use aspnetcore-build:1.0-2.0 and configured the proxy to allow bower installing packages from GitHub (network issue in China which is a separate issue) in WebSPA/WebMVC projects, everything worked fine.
Looking forward to the docker-multistage.
+1 Win10 16GB RAM.
+1 (CLI) on Mac 10.13.2 8CPU & 16Gb with all optional prerequisites, Docker has 4CPU & 8Gb assigned
-1 (VS for Mac Enterprise 7.3.2 build 12)
The containers appear deployed and running, but all .Net Core containers return empty response (curl or browser). Other containers (i.e. Mongo) work fine.
The only hint is the error message in Visual Studio for Mac in the application output pad (I do have 2.1.2 and 2.1.3 SDKs installed along with the corresponding runtime for each):
The specified SDK version [2.1.2] from global.json [/app/global.json] not found; install specified SDK version
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.The program '[16] dotnet' has exited with code 145 (0x91).
My Mac cannot be considered "clean" as it went through a few OS upgrades already.
Thank you for updating the 04. section of the Wiki. There is a wrong reference in this sentence: "When installing _Docker for Mac_, you can select between multiple workloads or platforms." Visual Studio for Mac is probably the right one.
@ilyabelkin Thanks! - So, because we upgraded to use Docker Multi-Stage builds, that feature is still not supported by VS for Mac, as I mention at the Wiki page as:
"Option B: Use Visual Studio for Mac
IMPORTANT: As of January 03 2018, support for Docker Multi-Stage builds is still not available in the current public release version of Visual Studio for Mac. It will be available soon."
It'll be supported pretty soon in VS for Mac. The VS Tools team in charge for that confirmed me that yesterday.
For now, in a Mac, you need to use docker-compose build/up. :)
@CESARDELATORRE Pleasure!
I started looking at the VS for Mac option before January 3rd with everything pointing to it being the preferred one. Even seeing the note it could be hard to understand its significance :)
Maybe you should just direct people to always use the CLI option before VS for Mac starts to work?
Thanks again for your work!
Agreed. That's why I now put the CLI option first, as option A. Then VS for Mac as option B.
Pretty soon it'll be available. Thanks for the feedback! :)
Hi
Please help,
I would like to add at least one Column to the Catalog table. How do I go about doing that? Where/how are the databases created? Is there are any database creation script that I need to modify?
@tkhalane - You need to use Entity Framework Migrations. See info like:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations
https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db
Basically, you first change the entity model (Entity classes and add the attribute).
Then, run the EF migration command against the project which will be the process holding the app, like the Web API app. So, I mean to select the startup project the app that will be holding that entity model.
Example of EF migrations command:
Add-Migration AddedStockAvailableAndThresholds -Context CatalogContext -OutputDir Infrastructure/CatalogMigrations
If you had an existing database in a real SQL Server, then as second setep you'd need to run the command Update-Database to apply the new migration to the existing database.
But, since the database in eShopOnContainers is created in a temporal SQL Server Container in Docker when you deploy the application, that's why you don't need to run the command Update-Database
In any case, learn about EF Migrations first by researching the links I put above.
@CESARDELATORRE I need your help here because I am stuck and need to deliver sprint 1 with the login flow fully function.
I am using the identityserver4 with aspnet core identity EF like eshop .. I can successfully call connect/token and receive access token and refresh token .. I also replaced the idsrv3.pfx with my own .pfx certificate .. but I can't make my other microservice use that token ... i keep getting 401 unauthorized error.
So can you help me with step by step on that one please ?
PS: I am trying using postman and swagger .. I also need a production environment solution not a development solution please.
Thanks a lot in advance
Hi all,
I tried the last version pulled on dev branch.
When I run from Visual Studio 2017, I have this exception:
[cid:2d5f0945-a950-4547-b18b-7aacdd08a50a]
Any idea?
Thanks
From: Steven Francis notifications@github.com
Sent: Sunday, January 7, 2018 1:06 AM
To: dotnet-architecture/eShopOnContainers
Cc: amihailes; Comment
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
@CESARDELATORREhttps://github.com/cesardelatorre I need your help here because I am stuck and need to deliver sprint 1 with the login flow fully function.
I am using the identityserver4 with aspnet core identity EF like eshop .. I can successfully call connect/token and receive access token and refresh token .. I also replaced the idsrv3.pfx with my own .pfx certificate .. but I can't make my other microservice use that token ... i keep getting 401 unauthorized error.
So can you help me with step by step on that one please ?
PS: I am trying using postman and swagger .. I also need a production environment solution not a development solution please.
Thanks a lot in advance
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-355787910, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQqQjFu-ENSB4ZAY-gMq9JucY4MKQaLGks5tIAqOgaJpZM4MYiVq.
What solution did you open?
From: amihailes notifications@github.com
Sent: Sunday, January 7, 2018 3:31:23 PM
To: dotnet-architecture/eShopOnContainers
Cc: Cesar De la Torre Llorente; Mention
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
Hi all,
I tried the last version pulled on dev branch.
When I run from Visual Studio 2017, I have this exception:
[cid:2d5f0945-a950-4547-b18b-7aacdd08a50a]
Any idea?
Thanks
From: Steven Francis notifications@github.com
Sent: Sunday, January 7, 2018 1:06 AM
To: dotnet-architecture/eShopOnContainers
Cc: amihailes; Comment
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
@CESARDELATORREhttps://github.com/cesardelatorre I need your help here because I am stuck and need to deliver sprint 1 with the login flow fully function.
I am using the identityserver4 with aspnet core identity EF like eshop .. I can successfully call connect/token and receive access token and refresh token .. I also replaced the idsrv3.pfx with my own .pfx certificate .. but I can't make my other microservice use that token ... i keep getting 401 unauthorized error.
So can you help me with step by step on that one please ?
PS: I am trying using postman and swagger .. I also need a production environment solution not a development solution please.
Thanks a lot in advance
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-355787910, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQqQjFu-ENSB4ZAY-gMq9JucY4MKQaLGks5tIAqOgaJpZM4MYiVq.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet-architecture%2FeShopOnContainers%2Fissues%2F107%23issuecomment-355862021&data=02%7C01%7Ccesardl%40microsoft.com%7Cd94aae3276984cb818a608d55626c460%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636509646872539634&sdata=p7xxAFKAsoyYFLuk4RsN%2FerT4y05FovEEKZy8Ivpljo%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABoh-w4JrHq9JZJJRXE36Zr7Wr19ffelks5tIVPLgaJpZM4MYiVq&data=02%7C01%7Ccesardl%40microsoft.com%7Cd94aae3276984cb818a608d55626c460%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636509646872549643&sdata=%2F9ADthYz3bIhXXIqNlVh%2Fgplx8k2ihungkW4Fseov1c%3D&reserved=0.
I opened:
eShopOnContainers-ServicesAndWebApps.sln
From: Cesar De la Torre notifications@github.com
Sent: Monday, January 8, 2018 1:33 AM
To: dotnet-architecture/eShopOnContainers
Cc: amihailes; Comment
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
What solution did you open?
From: amihailes notifications@github.com
Sent: Sunday, January 7, 2018 3:31:23 PM
To: dotnet-architecture/eShopOnContainers
Cc: Cesar De la Torre Llorente; Mention
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
Hi all,
I tried the last version pulled on dev branch.
When I run from Visual Studio 2017, I have this exception:
[cid:2d5f0945-a950-4547-b18b-7aacdd08a50a]
Any idea?
Thanks
From: Steven Francis notifications@github.com
Sent: Sunday, January 7, 2018 1:06 AM
To: dotnet-architecture/eShopOnContainers
Cc: amihailes; Comment
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
@CESARDELATORREhttps://github.com/cesardelatorre I need your help here because I am stuck and need to deliver sprint 1 with the login flow fully function.
I am using the identityserver4 with aspnet core identity EF like eshop .. I can successfully call connect/token and receive access token and refresh token .. I also replaced the idsrv3.pfx with my own .pfx certificate .. but I can't make my other microservice use that token ... i keep getting 401 unauthorized error.
So can you help me with step by step on that one please ?
PS: I am trying using postman and swagger .. I also need a production environment solution not a development solution please.
Thanks a lot in advance
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-355787910, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQqQjFu-ENSB4ZAY-gMq9JucY4MKQaLGks5tIAqOgaJpZM4MYiVq.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet-architecture%2FeShopOnContainers%2Fissues%2F107%23issuecomment-355862021&data=02%7C01%7Ccesardl%40microsoft.com%7Cd94aae3276984cb818a608d55626c460%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636509646872539634&sdata=p7xxAFKAsoyYFLuk4RsN%2FerT4y05FovEEKZy8Ivpljo%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABoh-w4JrHq9JZJJRXE36Zr7Wr19ffelks5tIVPLgaJpZM4MYiVq&data=02%7C01%7Ccesardl%40microsoft.com%7Cd94aae3276984cb818a608d55626c460%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636509646872549643&sdata=%2F9ADthYz3bIhXXIqNlVh%2Fgplx8k2ihungkW4Fseov1c%3D&reserved=0.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-355866073, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQqQjGEMDFvrlAU8FS8kS-eIbrur43tkks5tIWJHgaJpZM4MYiVq.
Hi @Steven-S-Francis
It is hard to guess what could be happening without any service call trace.
Are you receiving those 401 when SPA/MVC calls the services?
@amihailes What version of VS2017 are you using? - MAke sure you use the VS2017 15.5.2 or later. No PREVIEW.
Also, for real issues, like this case, please open specific issues at the link:
https://github.com/dotnet-architecture/eShopOnContainers/issues
This current issue is just to mention/vote if it is working for you or not, depending on the environments.
@eiximenis I figured it out today when I took a deep look to the trace log in the output window.
The issue was that the microservice trying to authorize the user and authorization filter before checking the token, so it fails. But the token itself always succeeded, so I had to reorder the pipeline/middlewares inside the startup.cs and I didn't know that the order matters.
Thanks a lot for trying to help out.
Hello,
@CESARDELATORRE
Visual Studio 2017 version 15.5.2 (NO PREVIEW)
I was looking to the issues and It seems to be the same problem as:
https://github.com/dotnet-architecture/eShopOnContainers/issues/459
I'll continue on that issue.
@Steven-S-Francis
The webMVC starting page after F5 goes to that error.
I'll put the stack trace on the issue #459
Thanks a lot for your help.
@CESARDELATORRE
I think I found the problem.
See #459 Flow.
+1 (VS2017) - Windows 10 Pro, RAM 16GB. Extremely happy that I could get this up and running within about 4h.
@weliwita Was it 4h including "Docker for Windows" and VS 2017 setup?
Hi Cesar,
+1 (VS2017)
I built multiple times, and also changed the Rabbit port to 5673 after getting the following error
Cannot start service rabbitmq: driver failed programming external connectivity on endpoint dockercompose367337471589986732_rabbitmq_1 (3f0058a5fd6e6d42b0a19c586a89886f25c6ef1ffe987b785e0612d7f7a05fe3): Error starting userland proxy: Bind for 0.0.0.0:5672 failed: port is already allocated
Thanks,
For your help :-)
@dguncet Hey Douglas. The issue with that port might be something related to your environment/machine. It should work with the original port. I just tested the latest version today on Docker for Windows with Linux Containers.
@dguncet please run this command in PowerShell (admin privilleges) on your hosting machine and check to see if the 5672 port is used:
netstat -aon
find the process by PID and end it.
In VS for Mac OS on hitting F5 I am getting "variable is not set" errors, and build is halted at that point. In fact the build is not starting at all. Did anyone experience similar issues?

+1 (VS2017) After I unchecked a firewall setting https://github.com/dotnet-architecture/eShopOnContainers/issues/513
-1 (VS2017) because of #513. I'm in corporate network where I cannot manage the firewall settings. Adding the rules using the script changed nothing. Due to group policy I cannot disable or bypass the firewall.
+1 (VS2017) in windows.
-1 (VS2017) in Mac
@prisar @xwrs - Fixed. The issue was that VS for Mac now requires docker-compose v '3.4' in order to be able to F5 or Ctrl+5 as it internally uses the option: 'target' internally, which is new since v 3.4.
The solution is simple, just upgrade all your docker-compose files to version: '3.4' and then it works on VS for Mac.
I already updated the docker-compose files so if you do a git pull you should get it and it should work for you now, ok?
Thanks for raising the issue, though. 👍
Here you can see the issue for future tracking down:
https://github.com/dotnet-architecture/eShopOnContainers/issues/553
+1 Vs 2017 On Windows10 Professional
+1 (VS2017)
+1 (CLI)
+1 (Both)
+1 (ACS & Kubernetes)
+1
+1 VS 2017 Preview
+1 Docker
Win 10
32 GM RAM
Hi @CESARDELATORRE
Is this application using Service Fabric like StatefulService and StatelessService? If so, Where can I see the source code? Want to see actual source code and not just deployment scripts.
thanks,
Maulik
+1 (CLI) mac
-1 (vs2017 7.6) mac dev branch
Build fails:
Target DockerPrepareForLaunch:
docker-compose -f "/Development/dotnet/eShopOnContainers/docker-compose.yml" -f "/Development/dotnet/eShopOnContainers/docker-compose.override.yml" -f "/Development/dotnet/eShopOnContainers/obj/Docker/docker-compose.vs.debug.g.yml" -p dockercompose6850091948184783864 --no-ansi config
yaml.scanner.ScannerError: while scanning a simple key
in "/Development/dotnet/eShopOnContainers/obj/Docker/docker-compose.vs.debug.g.yml", line 113, column 1
could not find expected ':'
in "/Development/dotnet/eShopOnContainers/obj/Docker/docker-compose.vs.debug.g.yml", line 114, column 15
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error : yaml.scanner.ScannerError: while scanning a simple key
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error : in "/Development/dotnet/eShopOnContainers/obj/Docker/docker-compose.vs.debug.g.yml", line 113, column 1
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error : could not find expected ':'
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error : in "/Development/dotnet/eShopOnContainers/obj/Docker/docker-compose.vs.debug.g.yml", line 114, column 15.
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error :
/Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/AddIns/docker/MonoDevelop.Docker/MSbuild/Sdks/Microsoft.Docker.Sdk/build/Microsoft.VisualStudio.Docker.Compose.targets(363,5): error : For more troubleshooting information, go to http://aka.ms/DockerToolsTroubleshooting
Done building target "DockerPrepareForLaunch" in project "docker-compose.dcproj" -- FAILED.
+1 (VS2017) 15.7.3 Win 10 Pro with 16 GB RAM
Hi - I am just looking through the code so haven't tried to run it yet - just a quick question - is the Ocelot stuff going to replace the other APIs or are they designed to work side-by-side?
@wayne-o - No, Ocelot API Gateways are just like a Façade, acting like reverse-proxies re-routing to the existing microservices we already had.
API Gateways offer further value than just reverse-proxy. See info about Ocelot for that.
@CESARDELATORRE could you give me an example of where you are using an API Gateway where Ocelot would not be suitable please? I have read the ocelot docs a few times over now as I find it really interesting - I am considering replacing my existing API gateway with it but would like to know some examples of where Ocelot is not suitable so i can see if I am about to hit some road blocks :)
@wayne-o - If you just need API Gateways features, Ocelot is suitable for most of the cases. There are large customers using it in scalable solutions, like Tencent (WebChat app) in China :https://www.tencent.com/en-us/system.html
However, in some cases where you are also selling your APIs to customers, there are many additional features that you might want to have, like what you have in Azure API Management, with assets like a developer portal, publisher portal, etc. and many more features you can see here:
https://azure.microsoft.com/en-us/services/api-management/
+1 (CLI) mac
-1 (VS2017 7.5.2) mac master branch
Build fails:

I have opened docker-compose.vs.debug.g.yml and found this. looks like $nuget_volume_mapping_mobilemarketingapigw$ is causing the issue.

+1 CLI Windows 10 (surface book with 8GB) with Docker for windows
@CESARDELATORRE thanks for the response :) I mean't in relation to the non Ocelot BFF API's we have in this project - what is the reason for keeping them going? I think they are called aggregators - here.
From the Ocelot docs I can see that we can aggregate the results of multiple calls to the backend micro services and return as one response. So I guess my question is - why are these aggregator projects being maintained when Ocelot can do aggregation. I'm wondering what this case is so that I am aware of any short comings in Ocelot that I might not be aware of that could trip me up down the line - or potentially be a feature request for Ocelot :)
Hi @kolluri-rk
This seems to be an issue about Visual Studio For Mac.
@CESARDELATORRE Seems that VS For Mac 7.5.2 has the same Docker Tools that VS2017 15.6 had. To build the dev branch of eShopOnContainers you need the Docker Tools provided with VS2017 15.7. We should check when VS For Mac will get those equivalent Docker Tools.
Hi @wayne-o
When started using Ocelot for eShopOnContainers no aggregation support was available, so we ended up building our custom aggregators. Thats the reason :)
Perfect! thank you - I think I'll be migrating to Ocelot this weekend and I
can delete my 2 app facing Api's! Always a good feeling haha
On Thu, Jun 14, 2018 at 11:10 AM Eduard Tomàs notifications@github.com
wrote:
Hi @wayne-o https://github.com/wayne-o
When started using Ocelot for eShopOnContainers no aggregation support was
available, so we ended up building our custom aggregators. Thats the reason
:)—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-397243668,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAK3jP_4u18NGq_14ead8zR3w0e_zrXEks5t8jaIgaJpZM4MYiVq
.
--
w://
t: 07508 215 459
@wayne-o - Also, discussing about Aggregators with Tom Pallister (from Ocelot), we preferred to create our own custom aggregators because they are more flexible by using our code.
The way you use aggregation with Ocelot is pretty simple but might not be flexible enough in many situations.
Thanks for this project - as a reference it’s really top. I’ve been using the CQRS PnP project and actually used what I learned there as a basis for a project I’m working on. I changed it to use RabbitMq, Ids and micro services, docker etc and I’m happy that a lot of that is apparent here - it qualifies my decisions but also this project has helped me fill in some gaps. It’s invaluable as a learning resource - excellent work and thanks to all of you who worked on it! :)
I’ll be refactoring to Ocelot over the weekend as my app facing APIs are literally pass throughs to my backend micro services and after some thinking I don’t even really need aggregators - I’m using EmberJs for the front end and it’s working great with the setup i have - using JsonApiDotNetCore for sparse field sets and includes so I don’t really need aggregation - I can imagine it’ll come in handy for some stuff but my read models are tailored to the UI already :)
My only gripe (and it’s small) with Ocelot is the way I can’t get swagger to work with it but I can live without that!
Cheers
Get Outlook for iOShttps://aka.ms/o0ukef
From: Cesar De la Torre notifications@github.com
Sent: Thursday, June 14, 2018 6:56:01 PM
To: dotnet-architecture/eShopOnContainers
Cc: Wayne Douglas; Mention
Subject: Re: [dotnet-architecture/eShopOnContainers] [QUESTION] Please, answer +1 if the solution is working properly for you (Through VS2017 or CLI environment) (#107)
@wayne-ohttps://github.com/wayne-o - Also, discussing about Aggregators with Tom Pallister (from Ocelot), we preferred to create our own custom aggregators because they are more flexible by using our code.
The way you use aggregation with Ocelot is pretty simple but might not be flexible enough in many situations.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet-architecture/eShopOnContainers/issues/107#issuecomment-397383566, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAK3jJDx_nnzIFNHRMD2WhDoZkIfrdAQks5t8qOxgaJpZM4MYiVq.
The VS for Mac 2017 beta 7.6.0.947 also gives the same errors as 7.5.2
+1 (VS2017)
@wayne-o - Thanks a lot for the feedback! 👍
@AndrewCapon @kolluri-rk
Looks like it is a possible bug in VS for Mac. I have reported it to the VS Tools for Docker team and created an specific issue in our side, here:
https://github.com/dotnet-architecture/eShopOnContainers/issues/634
Any update will be posted in the issue.
Thanks for your feedback! 👍
@CESARDELATORRE thanks very much for doing that for us.
@CESARDELATORRE thanks very much for doing that for us.
@CESARDELATORRE thank you so much. I will follow updates on that thread.
@CESARDELATORRE What is the reason for using _loggerFactory.AddAzureWebAppDiagnostics();_ in WebStatus project?
As per doco (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.1 ) ,
_If targeting .NET Core, don't install the provider package or explicitly call AddAzureWebAppDiagnostics. The provider is automatically available to the app when the app is deployed to Azure App Service._
thanks,
Maulik Khandwala
+1 (VS2017)
@CESARDELATORRE
Hello,
I have been looking into this app and have successfully set it up on a VM and it works smoothly with localhost. However I tried to put an ip and faced the below situations...Can you please help me understand where am I going wrong?
First Scenario:
Instead of loaclhost tried gave the public IP of my VM in the .env file and ran the app with a CI-CD pipeline. Used the docker-compose -f docker-compose.yml -f docker-compose.override.yml up
Issues:
Second Scenario:
Followed the step by step documentation and created all the Azure resources and updated the .env file with the IP..
Next updated the docker-compose.prod.yml file. And ran the command docker-compose -f docker-compose.yml -f docker-compose.prod.yml up.
I am not able to understand what needs to be done. Hence seeking help in this forum.
Regards,
AS
@arindams621 - There are quite a few different issues/questions around your post..
Can you please create separated questions/topics in different ISSUES at the repo depending on the specific problems?
We'll try to provide some support/answers for topics directly related to eShopOnContainers, but about other issues related to your environment, we won't be able to help, as our time is very limited and must be restricted to issues related to eShopOnContainers in the dev environment, most of all.
Thanks,
Issues in Azure can get complex and depend on your infrastructure/environment, and we don't have time bandwidth for it.
@CESARDELATORRE Thanks for the quick TAT. I do understand the time and bandwidth restrictions and hence am creating 2 main issues that I am looking forward to resolve with further directions/help.
The documentation is stating that this sample is supposed to run either on Service Bus or on Azure Container Kubernetes Services as these are basically the tested environments.
I would like to deploy on Azure App Service though. Any chances to get this to work?
@maulikk2000 You seem to have managed (?) to get this up and running when avoiding to use AzureAppServicesLoggerFactoryExtensions.AddAzureWebAppDiagnostics?
@CESARDELATORRE The documentation is stating that this sample is supposed to run either on Service Bus or on Azure Container Kubernetes Services as these are basically the tested environments.
I would like to deploy on Azure App Service though. Any chances to get this to work or should it work but it has just not been (fully) tested yet?
@Bughunter666 - Azure App Service is not meant to be used as a deployment platform for a microservices-based application like eShopOnContainers.
Azure App Service is designed to host web apps, usually more like monolithic apps or coarse-grain N-Tier apps, but not fine-grain microservices (tens of microservices, for instance).
Best environments for microservices on containers are AKS or Service Fabric.
In addition, you cannot deploy infrastructure containers (like SQL container, RabbitMQ, Redis, etc.) into Azure App Service (only services using HTTP or HTTPS). You'd need to create all that infrastructure in other Azure's services (Azure SQL Database, Azure Service Bus and Redis as a service), which for a production environment is right, but for Dev/Test environments will take a lot more work than just deploying the whole eShopOnContainers into an orchestrator like AKS (Kubernetes).
About Azure Service Bus, it is opt-in in eShopOnContainers. The by default environment uses a RabbitMQ container, but we also support Azure Service Bus for the Event Bus abstraction.
+1 - got the identity provider (identity server 4) working by doing what @terolaakso said to do as well.
I also did this as well:
https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Certificates
Docker for Windows just doesn't work on my machine. How about Service Fabric?
+1 (Both)
+1 (Both VS2017 & CLI). Really very nice sample here BTW. Keep on providing really illuminating quality sample code like this one! :-)
+1 (VS2017 Visual Studio for Mac & CLI, run locally on my Mac). Worked flawlessly. Thanks for creating this! Also added New Relic monitoring and Distributed Tracing. Notes here: https://www.linkedin.com/pulse/getting-hands-containers-microservices-dummies-anil-murty/
+1 for AKS as well. I did run into a few glitches (below) but was very easy to set up overall. Thanks for creating this solution too!
Will do writeup (that will including NR monitoring) with screenshots like the linkedin post above soon!
+1 (VS2017)
-1 (initially) - the signon threw "Unable to retrieve document from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.", even after running the PS script to open the ports.
+1 (VS 2017) after following the solution from @eiximenis in this issue https://github.com/dotnet-architecture/eShopOnContainers/issues/513
If you get the error below as I did, install the latest .NET Core SDK from https://www.microsoft.com/net/download/visual-studio-sdks and change the version number in the global.json file located in the project directory to the downloaded one.
The current .NET SDK does not support targeting .NET Standard 2.0. Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0. eShopOnContainers.UnitTests C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets 126
+1 VS2017. Was a piece of cake.
-0 Helm/Azure/AKS: Helm deploy is now working such that I can browse to the MVC.
More info, just for kicks...
Having problem in AKS Helms deployment with missing db columns in Catalog. Seemed to resolve this by killing/restarting the Catalog-API pod after restarting the sqlserver pod. But then having similar issue with Marketing and Basket. Deleted my AKS for now to save money. Will issue proper ticket if still a problem when I rebuild AKS.
Don't get me wrong, this is an AWESOME project and is amazingly solid for all that it does. Thanks all!
+1 VS2017
Thumbs up for the great work!
Working straight out of the box following the steps provided by the wiki.
+1 (VS2017)
-1 (cli +ubuntu16.4 )
[40m[32minfo[39m[22m[49m: Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.OrderingContext[0]
Migrating database associated with context OrderingContext
[40m[1m[33mwarn[39m[22m[49m: Microsoft.EntityFrameworkCore.Model.Validation[20600]
Property 'Id' on entity type 'CardType' is part of a primary or alternate key but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unqiue values.
[40m[1m[33mwarn[39m[22m[49m: Microsoft.EntityFrameworkCore.Model.Validation[20600]
Property 'Id' on entity type 'OrderStatus' is part of a primary or alternate key but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unqiue values.
[40m[1m[33mwarn[39m[22m[49m: Microsoft.EntityFrameworkCore.Model.Validation[30000]
No type was specified for the decimal column 'Discount' on entity type 'OrderItem'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values using 'ForHasColumnType()'.
[40m[1m[33mwarn[39m[22m[49m: Microsoft.EntityFrameworkCore.Model.Validation[30000]
No type was specified for the decimal column 'UnitPrice' on entity type 'OrderItem'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values using 'ForHasColumnType()'.
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 2.1.4-rtm-31024 initialized 'OrderingContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: MigrationsAssembly=Ordering.API
[41m[30mfail[39m[22m[49m: Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.OrderingContext[0]
An error occurred while migrating the database used on context OrderingContext
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_02.
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementationTState,TResult
at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteTState,TResult
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.ExecuteTState,TResult
at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
at Microsoft.AspNetCore.Hosting.IWebHostExtensions.<>c__DisplayClass0_11.
at Polly.Policy.<>c__DisplayClass144_0.
at Polly.RetrySyntax.<>c__DisplayClass20_1.
at Polly.Retry.RetryEngine.ImplementationTResult
at Polly.RetrySyntax.<>c__DisplayClass20_0.2 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.ExecuteInternal(Action2 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.Execute(Action2 action, Context context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Hosting.IWebHostExtensions.MigrateDbContext[TContext](IWebHost webHost, Action2 seeder) in /src/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs:line 48
ClientConnectionId:00000000-0000-0000-0000-000000000000
[40m[32minfo[39m[22m[49m: Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogContext[0]
Migrating database associated with context IntegrationEventLogContext
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 2.1.4-rtm-31024 initialized 'IntegrationEventLogContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: MigrationsAssembly=Ordering.API
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (4,133ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
CREATE DATABASE [Microsoft.eShopOnContainers.Services.OrderingDb];
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3,603ms) [Parameters=[], CommandType='Text', CommandTimeout='60']
IF SERVERPROPERTY('EngineEdition') <> 5
BEGIN
ALTER DATABASE [Microsoft.eShopOnContainers.Services.OrderingDb] SET READ_COMMITTED_SNAPSHOT ON;
END;
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (82ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [__EFMigrationsHistory] (
[MigrationId] nvarchar(150) NOT NULL,
[ProductVersion] nvarchar(32) NOT NULL,
CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
);
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [MigrationId], [ProductVersion]
FROM [__EFMigrationsHistory]
ORDER BY [MigrationId];
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Migrations[20402]
Applying migration '20170330131634_IntegrationEventInitial'.
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [IntegrationEventLog] (
[EventId] uniqueidentifier NOT NULL,
[Content] nvarchar(max) NOT NULL,
[CreationTime] datetime2 NOT NULL,
[EventTypeName] nvarchar(max) NOT NULL,
[State] int NOT NULL,
[TimesSent] int NOT NULL,
CONSTRAINT [PK_IntegrationEventLog] PRIMARY KEY ([EventId])
);
[40m[32minfo[39m[22m[49m: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20170330131634_IntegrationEventInitial', N'2.1.4-rtm-31024');
[40m[32minfo[39m[22m[49m: Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogContext[0]
Migrated database associated with context IntegrationEventLogContext
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
Creating key {09db46a7-4020-4115-a3ee-13744989943e} with creation date 2018-12-25 13:02:40Z, activation date 2018-12-25 13:02:40Z, and expiration date 2019-03-25 13:02:40Z.
[40m[1m[33mwarn[39m[22m[49m: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {09db46a7-4020-4115-a3ee-13744989943e} may be persisted to storage in unencrypted form.
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39]
Writing data to file '/root/.aspnet/DataProtection-Keys/key-09db46a7-4020-4115-a3ee-13744989943e.xml'.
[40m[32minfo[39m[22m[49m: Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ.DefaultRabbitMQPersistentConnection[0]
RabbitMQ Client is trying to connect
[40m[32minfo[39m[22m[49m: Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ.DefaultRabbitMQPersistentConnection[0]
RabbitMQ persistent connection acquired a connection rabbitmq and is subscribed to failure events
Hosting environment: Development
Content root path: /app
Now listening on: http://0.0.0.0:80
Application started. Press Ctrl+C to shut down.
+1 (VS2017)
Great developmental work on this project, guys! Thank you very much!
+1 (VS2017)
Did not work on https://localhost:5100/ as per startup properties, maybe I missed a configuration step.
Error received was "This site can’t provide a secure connection" (Chrome) did not work in Edge either
Did work on http://localhost:5100/ though.
Impressed so far. Lots to read 😄
BTW: Knowledge for community, if you want to run this inside a Hyper-V VM, you must enable "nested virtualization", for docker to work, google it!
Hi @IainStevenson,
That's the normal scenario, haven't tried with Chrome, but Firefox gives you the option to accept the security exception.
Anyway that might not be a good practice, but you can take a look at this post from Scott Hanselman for a better solution: https://www.hanselman.com/blog/DevelopingLocallyWithASPNETCoreUnderHTTPSSSLAndSelfSignedCerts.aspx
Hope this helps.
thanks for the info.
I develop all the time with https and it works find on my other docker based solutions /experiments but it seems to not set up the docker environment right for some reason on this solution.
I think it is because they have asked the docker_compose to startup https://localhost:5100 but configured its startup to use http://localhost:5100 as per this launch settings file.
And also the container does not expose port 443 (AFAIK)
Leading me to think that the docker_compose startup property is incorrect.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5100",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Microsoft.eShopOnContainers.WebMVC": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Well, this is probably a carry over from a time when https in dev machines wasn't considered as important as it is now.
It might be something to fix, but then again it adds more complexity to the setup, so I'm not sure it's a good idea to enforce https here.
OK my bad, the properties are NOT https: it is an HSTS issue from another development project on my host interfering....
Forcing all localhost http calls on my dev machine into HTTPS.
Damn, they sneak in when you least expect em 😄
Windows enviroment
+1 CLI docker-compose build
-1 CLI docker-compose up
Pulling nosql.data (mongo:)...
ERROR: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<!--# Id: closedproxy.html 114963 2016-03-18 03:20:55Z szhang --> ...
Docker settings (linux containers)
CPU: 4
RAM: 6400
Swap: 2048
Hi @Henkolicious,
From the message it looks like a proxy issue.
I haven't seen this before, but It seems your are getting an html response with a comment that docker is trying to parse while downloading the image.
Can you try this command:
docker pull mongo:latest
You should see something like this:

Hope this helps.
@mvelosop Thanks for the tip!
Yes, I'm behind a corporate proxy at the moment.
Pulling mongo:latest separatly from the CLI worked like a charm, and now docker-compose up also works. I have the proxy settings setup in docker desktop client, even when I tried erlier.
Status +1 CLI docker-compose up
Great @Henkolicious! good to know it's working for you now! 😊
+1 (VS2019 Preview 2)
+1 (VS2017)
+1 (Both) : VS2017 & CLI
+1 (VS2017) on dev branch
+1 (Both) : VS2017 & CLI - on both Windows 10 Pro and macOS. Machine 8gb / Docker 4gb, 2 cores.
Slow startup but runs ok.
Further update - I noticed that the WebSPA doesn't appear to work (http://localhost:5104/ returns 404) when app started from VS2017 (both Windows and macOS), however it does work when docker-compose up is run using the CLI.
Possible cause: Following taken from the WebSPA output ...
[10:54:16 ERR] ERROR in GetPreconfiguredImages: Value cannot be null.
Parameter name: path1
System.ArgumentNullException: Value cannot be null.
Parameter name: path1
at System.IO.Path.Combine(String path1, String path2, String path3)
at WebSPA.Infrastructure.WebContextSeed.GetPreconfiguredImages(String contentRootPath, String webroot, ILogger log) in /Users/richard/Projects/eShopOnContainers/src/Web/WebSPA/Server/Infrastructure/WebContextSeed.cs:line 44
+1 (CLI)
Hi, i'm trying to up project CLI
Im facing problem with mssql, Identity catalog was created
Microsoft.eShopOnContainers.Services.IdentityDB - OK Ceated
but CatalogDB was not:
Microsoft.eShopOnContainers.Services.CatalogDb - N OK
I'm missing something?
Hi @rjdebona,
I don't remember anyone having this problem, did you assign the 4 GB RAM that the setup guide specifies?
I setup 3.5GB. mssql is up.
There anyway to force this creation as ef migration with update-database?
Perhaps if you try spinning up only the SQL Server container with
docker-compose up sql.data
And you configure the server in the connection string to localhost, 5433 or 10.0.75.1, 5433 you might get it.
Hope this helps.
Hi @richard-ashby,
It seems a Mac issue, would you create an issue so we continue the conversation there?
Hi @mvelosop
It seems a Mac issue, would you create an issue so we continue the conversation there?
OK will do ASAP, BTW I need to reinstall VS2017 for Mac before I can re-test as I had to remove it yesterday due to other reason (un-related to this issue).
Perhaps if you try spinning up only the SQL Server container with
docker-compose up sql.dataAnd you configure the server in the connection string to
localhost, 5433or10.0.75.1, 5433you might get it.Hope this helps.
Did you say change string in app.settings of each API?
@rjdebona, you'd only have to do it in the four microservices that use an SQL Server DB, and just to migrate the DB, but I'm not sure this would solve your issue, since it seems to be a memory issue.
+1 @mvelosop that's correct, i up from 3,5GB to 4GB and problems were solved. Thanks!
Glad to know it's working for you @rjdebona!
+1 (VS2017) on dev branch
+1. DOCKER CLI on MAC.
+1 (VS2017) on dev branch
+1 CLI on Windows
-1 VS2017
+1 VS2019
+1 VS2019 on Windows 10
+1 VS2019 on Windows 10
+1 CLI on Mac
-1 VS2019 for Mac
pretty sure the -1 is this issue: https://developercommunity.visualstudio.com/content/problem/459912/docker-support-in-aspnet-core-project-fails-to-run.html
docker containers are up but not running the solutions..
+1 VS2019 on Windows 10
+1 CLI on Windows 10
How to deploy this type of project in Azure Kubernates Service using docker-compose?
Hi @nilukshan, you might want to take a look at the wiki page: https://github.com/dotnet-architecture/eShopOnContainers/wiki/10.-Deploying-to-Kubernetes-(AKS-and-local)-using-Helm-Charts
However, there's an issue I'm working on now and if fails when trying to deploy to local Kubernetes.
-1 (VS2019) on dev branch in Windows 10
Severity Code Description Project File Line Suppression State
Error (Line: 218, Col: 9, Idx: 5557) - (Line: 218, Col: 9, Idx: 5557): Expected 'MappingStart', got 'SequenceStart' (at Line: 218, Col: 9, Idx: 5557). docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 300
Hi @sarthakvijayvergiya, as metioned in issue #1073, this seemed to be a VS issue, but it was "workarounded" in commit 33fb3a735ffd77641fed05cc573e875ba492f416.
-1 vs2019 community....Internal server error on Login page
Hi @lloydmonteiro, could you create an issue with the details, please?
+1 VS2017 on Windows 10
Hi @nilukshan, you might want to take a look at the wiki page: https://github.com/dotnet-architecture/eShopOnContainers/wiki/10.-Deploying-to-Kubernetes-(AKS-and-local)-using-Helm-Charts
However, there's an issue I'm working on now and if fails when trying to deploy to local Kubernetes.
were you able to find solution to the issue of deploying locally to kubernetes?
-1 CLI on Windows 10
+1 VS2019 on Windows 10
Note: I have followed the setup instructions including Docker Advanced settings and Windows Firewall settings as per documents:
Issue Details below-
Also see attached file for CLI docker logs generated.
eShopOnContainers-CLI-docker-logs.log
a) Error building "identity.api", "webstatus" and "webmvc"=>
libman.json : error LIB002: The "[email protected]" library could not be resolved by the "unpkg" provider [/src/src/Services/Identity/Identity.API/Identity.API.csproj]
One or more libraries failed to restore ERROR: Service 'identity.api' failed to build: The command '/bin/sh -c dotnet publish -c Release -o /app' returned a non-zero code: 1
-- Need to manually update respective "libman.json" files in local folder to use provider "cdnjs" instead of "unpkg"
b) Later facing error building and running API Gateways "webshoppingapigw", "webmarketingapigw", "mobilemarketingapigw", "mobileshoppingapigw":
webshoppingapigw_1 | Unhandled Exception: System.IO.FileNotFoundException: The configuration file 'configuration/configuration.json' was not found and is not optional. The physical path is '/app/configuration/configuration.json'.
webshoppingapigw_1 | at
Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
webshoppingapigw_1 | at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
webshoppingapigw_1 | at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
webshoppingapigw_1 | at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
webshoppingapigw_1 | at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors)
webshoppingapigw_1 | at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
webshoppingapigw_1 | at OcelotApiGw.Program.BuildWebHost(String[] args) in /src/src/ApiGateways/ApiGw-Base/Program.cs:line 42
webshoppingapigw_1 | at OcelotApiGw.Program.Main(String[] args) in /src/src/ApiGateways/ApiGw-Base/Program.cs:line 19
eshoponcontainers_webshoppingapigw_1 exited with code 139
c) WebSPA error screen image (similar issues 'Catalog service error' in WebMVC app):


Built the docker-compose CS Project.
a) WebMVC Exception when clicked Login menu on Home page
Error - InvalidOperationException: IDX20803: Unable to obtain configuration from: '[PII is hidden]'.

b) WebSPA Exception when clicked Login menu on Home page

Note that Identity Application is working as shown in below image:

Closing this issue now as it's not being tracked any more, please create a regular issue in case of getting started problems.
Most helpful comment
-1 (VS2017) on Win10 Entr, RAM 32GBd__8.MoveNext()d__24.MoveNext()
when click on LOGIN after a while got this error:
An unhandled exception occurred while processing the request.
TaskCanceledException: A task was canceled.
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
IOException: IDX10804: Unable to retrieve document from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever+
InvalidOperationException: IDX10803: Unable to obtain configuration from: 'http://10.0.75.1:5105/.well-known/openid-configuration'.
Microsoft.IdentityModel.Protocols.ConfigurationManager+