From 4a9b2e9e4aa979430fbb1c985bdeaf15aeca2645 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Fri, 27 Oct 2017 18:07:11 -0700 Subject: [PATCH] Updated 03. Setting the eShopOnContainers solution up in a Windows CLI environment (dotnet CLI, Docker CLI and VS Code) (markdown) --- ...nvironment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md b/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md index a9b3759..1727fa6 100644 --- a/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md +++ b/03.-Setting-the-eShopOnContainers-solution-up-in-a-Windows-CLI-environment-(dotnet-CLI,-Docker-CLI-and-VS-Code).md @@ -127,7 +127,16 @@ If you have any issue here, read the [Setting the Web SPA application up](https: # Option A. Approach building bits from a Linux build-container instead of the local Windows dev-machine -*IMPORTANT NOTE (as of Oct. 2017):* This is the simplest way to do it from the CLI, but if you are getting errors related to the CLI logger which happens ramdomly due to a race condition, a [bug in .NET CLI when running "dotnet publish" within a container](https://github.com/Microsoft/msbuild/issues/2153#issuecomment-305375162), please, then follow the OPTION B explained below, which is building the app's .NET binaries in the local Windows machine, instead of from a Linux build-container. +*IMPORTANT NOTE (as of Oct. 2017):* + +This is the simplest way to do it from the CLI, but if you get the following error when compiling from the Linux build-container: + +`MSBUILD : error MSB4017: The build stopped unexpectedly because of an unexpected logger failure.` +`ci-build_1 | Microsoft.Build.Exceptions.InternalLoggerException: The build stopped unexpectedly because of an unexpected logger failure. ---> System.IO.IOException: The process cannot access the file because it is being used by another process.` + +That is a [bug in .NET CLI when running "dotnet publish" within a container](https://github.com/Microsoft/msbuild/issues/2153#issuecomment-305375162). + +If you get this stopper, until the fix is released by the dotnet CLI team in the next version of the .NET CLI, in the meantime follow the *OPTION B* explained below, which is building the app's .NET binaries in the local Windows machine, instead of from a Linux build-container. --- The recommended approach is to build the .NET bits and Docker images by using an special build container/image that should be used either from the CLI or your CI/CD pipeline. Doing that way you'll make sure that what you run and test locally is also built the same way by your CI/CD pipleine (having the same dependencies available within the build container, etc.).