From af14d37378e82ec99d2b75ccf9e19b2342eab201 Mon Sep 17 00:00:00 2001 From: etomas Date: Tue, 14 Feb 2017 16:23:26 +0100 Subject: [PATCH 01/18] Projects migrated to vs2017 csproj format --- eShopOnContainers-ServicesAndWebApps.sln | 35 +++--- global.json | 13 -- .../Basket/Basket.API/Basket.API.csproj | 38 ++++++ .../Basket/Basket.API/Basket.API.xproj | 19 --- src/Services/Basket/Basket.API/project.json | 62 ---------- .../Catalog/Catalog.API/Catalog.API.csproj | 46 +++++++ .../Catalog/Catalog.API/Catalog.API.xproj | 19 --- src/Services/Catalog/Catalog.API/project.json | 61 --------- .../Identity/Identity.API/Identity.API.csproj | 65 ++++++++++ .../Identity/Identity.API/Identity.API.xproj | 23 ---- .../Identity/Identity.API/project.json | 101 --------------- .../Ordering/Ordering.API/Ordering.API.csproj | 56 +++++++++ .../Ordering/Ordering.API/Ordering.API.xproj | 18 --- .../Ordering/Ordering.API/project.json | 76 ------------ .../Ordering.Domain/Ordering.Domain.csproj | 14 +++ .../Ordering.Domain/Ordering.Domain.xproj | 19 --- .../Ordering/Ordering.Domain/project.json | 13 -- .../Ordering.Infrastructure.csproj | 23 ++++ .../Ordering.Infrastructure.xproj | 19 --- .../Ordering.Infrastructure/project.json | 16 --- src/Web/WebMVC/WebMVC.csproj | 58 +++++++++ src/Web/WebMVC/eShopOnContainers.WebMVC.xproj | 23 ---- src/Web/WebMVC/project.json | 93 -------------- .../eShopOnContainers.WebSPA.csproj | 59 +++++++++ .../eShopOnContainers.WebSPA.xproj | 17 --- .../eShopOnContainers.WebSPA/project.json | 116 ------------------ .../FunctionalTests/FunctionalTests.csproj | 34 +++++ .../FunctionalTests/FunctionalTests.xproj | 22 ---- test/Services/FunctionalTests/project.json | 35 ------ test/Services/UnitTest/UnitTest.csproj | 30 +++++ test/Services/UnitTest/UnitTest.xproj | 22 ---- test/Services/UnitTest/project.json | 28 ----- 32 files changed, 440 insertions(+), 833 deletions(-) delete mode 100644 global.json create mode 100644 src/Services/Basket/Basket.API/Basket.API.csproj delete mode 100644 src/Services/Basket/Basket.API/Basket.API.xproj delete mode 100644 src/Services/Basket/Basket.API/project.json create mode 100644 src/Services/Catalog/Catalog.API/Catalog.API.csproj delete mode 100644 src/Services/Catalog/Catalog.API/Catalog.API.xproj delete mode 100644 src/Services/Catalog/Catalog.API/project.json create mode 100644 src/Services/Identity/Identity.API/Identity.API.csproj delete mode 100644 src/Services/Identity/Identity.API/Identity.API.xproj delete mode 100644 src/Services/Identity/Identity.API/project.json create mode 100644 src/Services/Ordering/Ordering.API/Ordering.API.csproj delete mode 100644 src/Services/Ordering/Ordering.API/Ordering.API.xproj delete mode 100644 src/Services/Ordering/Ordering.API/project.json create mode 100644 src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj delete mode 100644 src/Services/Ordering/Ordering.Domain/Ordering.Domain.xproj delete mode 100644 src/Services/Ordering/Ordering.Domain/project.json create mode 100644 src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj delete mode 100644 src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.xproj delete mode 100644 src/Services/Ordering/Ordering.Infrastructure/project.json create mode 100644 src/Web/WebMVC/WebMVC.csproj delete mode 100644 src/Web/WebMVC/eShopOnContainers.WebMVC.xproj delete mode 100644 src/Web/WebMVC/project.json create mode 100644 src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj delete mode 100644 src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.xproj delete mode 100644 src/Web/WebSPA/eShopOnContainers.WebSPA/project.json create mode 100644 test/Services/FunctionalTests/FunctionalTests.csproj delete mode 100644 test/Services/FunctionalTests/FunctionalTests.xproj delete mode 100644 test/Services/FunctionalTests/project.json create mode 100644 test/Services/UnitTest/UnitTest.csproj delete mode 100644 test/Services/UnitTest/UnitTest.xproj delete mode 100644 test/Services/UnitTest/project.json diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/eShopOnContainers-ServicesAndWebApps.sln index 7dba59ba1..fd88b260e 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/eShopOnContainers-ServicesAndWebApps.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26206.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{932D8224-11F6-4D07-B109-DA28AD288A63}" EndProject @@ -9,7 +9,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject docker-compose.override.yml = docker-compose.override.yml docker-compose.yml = docker-compose.yml - global.json = global.json NuGet.config = NuGet.config EndProjectSection EndProject @@ -23,31 +22,31 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Basket", "Basket", "{BF3EF4 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ordering", "Ordering", "{0BD0DB92-2D98-44D9-9AC0-C59186D59B0B}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.xproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.xproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.xproj", "{231226CE-690B-4979-8870-9A79D80928E2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{24CD3B53-141E-4A07-9B0D-796641E1CF78}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.xproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.csproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.csproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.csproj", "{231226CE-690B-4979-8870-9A79D80928E2}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "eShopOnContainers.WebMVC", "src\Web\WebMVC\eShopOnContainers.WebMVC.xproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.csproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "eShopOnContainers.WebSPA", "src\Web\WebSPA\eShopOnContainers.WebSPA\eShopOnContainers.WebSPA.xproj", "{9842DB3A-1391-48C7-A49C-2FABD0A18AC2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebMVC", "src\Web\WebMVC\WebMVC.csproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.xproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "eShopOnContainers.WebSPA", "src\Web\WebSPA\eShopOnContainers.WebSPA\eShopOnContainers.WebSPA.csproj", "{9842DB3A-1391-48C7-A49C-2FABD0A18AC2}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FunctionalTests", "test\Services\FunctionalTests\FunctionalTests.xproj", "{621E7211-58D0-45FD-9600-1CB490BD930E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "UnitTest", "test\Services\UnitTest\UnitTest.xproj", "{7796F5D8-31FC-45A4-B673-19DE5BA194CF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests", "test\Services\FunctionalTests\FunctionalTests.csproj", "{621E7211-58D0-45FD-9600-1CB490BD930E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{24CD3B53-141E-4A07-9B0D-796641E1CF78}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "test\Services\UnitTest\UnitTest.csproj", "{7796F5D8-31FC-45A4-B673-19DE5BA194CF}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.xproj", "{A579E108-5445-403D-A407-339AC4D1611B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -457,17 +456,17 @@ Global {326A7FB3-5295-468C-A4FE-67DCB823E1E5} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} {BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} + {EF0337F2-ED00-4643-89FD-EE10863F1870} = {A857AD10-40FF-4303-BEC2-FF1C58D5735E} + {24CD3B53-141E-4A07-9B0D-796641E1CF78} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} {2110CBB0-3B38-4EE4-A743-DF6968D80D90} = {BF3EF4F3-E4F5-41DA-9D2D-57223687D1A8} {42681D9D-750A-4DF7-BD9F-9292CFD5C253} = {326A7FB3-5295-468C-A4FE-67DCB823E1E5} {231226CE-690B-4979-8870-9A79D80928E2} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} {F5598DCB-6DDE-4661-AD9D-A55612DA7E76} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} - {EF0337F2-ED00-4643-89FD-EE10863F1870} = {A857AD10-40FF-4303-BEC2-FF1C58D5735E} {F0333D8E-0B27-42B7-B2C6-78F3657624E2} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} {9842DB3A-1391-48C7-A49C-2FABD0A18AC2} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04} {95F1F07C-4D92-4742-BD07-E5B805AAB651} = {0BD0DB92-2D98-44D9-9AC0-C59186D59B0B} {621E7211-58D0-45FD-9600-1CB490BD930E} = {EF0337F2-ED00-4643-89FD-EE10863F1870} {7796F5D8-31FC-45A4-B673-19DE5BA194CF} = {EF0337F2-ED00-4643-89FD-EE10863F1870} - {24CD3B53-141E-4A07-9B0D-796641E1CF78} = {91CF7717-08AB-4E65-B10E-0B426F01E2E8} {A579E108-5445-403D-A407-339AC4D1611B} = {24CD3B53-141E-4A07-9B0D-796641E1CF78} EndGlobalSection EndGlobal diff --git a/global.json b/global.json deleted file mode 100644 index 1fe3e7546..000000000 --- a/global.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "projects": [ - "src", - "test", - "src/Services/Ordering", - "src/Web", - "src/Services/Catalog" - ], - - "sdk": { - "version": "1.0.0-preview2-003131" - } -} diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj new file mode 100644 index 000000000..c0a11ef9d --- /dev/null +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -0,0 +1,38 @@ + + + + netcoreapp1.1 + portable + true + Basket.API + Exe + Basket.API + 1.1.0 + $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Basket/Basket.API/Basket.API.xproj b/src/Services/Basket/Basket.API/Basket.API.xproj deleted file mode 100644 index d734a83ad..000000000 --- a/src/Services/Basket/Basket.API/Basket.API.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 2110cbb0-3b38-4ee4-a743-df6968d80d90 - Microsoft.eShopOnContainers.Services.Basket.API - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/project.json b/src/Services/Basket/Basket.API/project.json deleted file mode 100644 index 4ca72f510..000000000 --- a/src/Services/Basket/Basket.API/project.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "System.Threading": "4.3.0", - "Microsoft.AspNetCore.Mvc": "1.1.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Logging": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "StackExchange.Redis": "1.1.608", - "Newtonsoft.Json": "9.0.1", - "IdentityServer4.AccessTokenValidation": "1.0.1-rc3", - "Swashbuckle": "6.0.0-beta902" - }, - "tools": { - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" - }, - "frameworks": { - "netcoreapp1.1": { - "imports": [ - "netstandard1.6.1", - "dnxcore50", - "portable-net451+win8" - ] - } - }, - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "debugType": "portable" - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config", - "Dockerfile", - "docker-compose.yml", - ".dockerignore" - ] - }, - "scripts": { - "postpublish": [ - "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" - ] - } -} \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj new file mode 100644 index 000000000..9ec9eee72 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -0,0 +1,46 @@ + + + + netcoreapp1.1 + portable + true + Catalog.API + Exe + Catalog.API + aspnet-Catalog.API-20161122013618 + 1.1.0 + $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.xproj b/src/Services/Catalog/Catalog.API/Catalog.API.xproj deleted file mode 100644 index f3fba7286..000000000 --- a/src/Services/Catalog/Catalog.API/Catalog.API.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 42681d9d-750a-4df7-bd9f-9292cfd5c253 - Microsoft.eShopOnContainers.Services.Catalog.API - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/src/Services/Catalog/Catalog.API/project.json b/src/Services/Catalog/Catalog.API/project.json deleted file mode 100644 index 67d3b95cd..000000000 --- a/src/Services/Catalog/Catalog.API/project.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "debugType": "portable" - }, - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Mvc": "1.1.0", - "Microsoft.AspNetCore.Diagnostics": "1.1.0", - "Microsoft.AspNetCore.Diagnostics.Abstractions": "1.1.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", - "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Logging": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "Microsoft.EntityFrameworkCore": "1.1.0", - "Microsoft.EntityFrameworkCore.Relational": "1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", - "Microsoft.EntityFrameworkCore.Design": "1.1.0", - "Swashbuckle": "6.0.0-beta902" - }, - "frameworks": { - "netcoreapp1.1": { - "imports": [ - "dotnet5.6", - "portable-net45+win8" - ] - } - }, - "publishOptions": { - "include": [ - "wwwroot", - "Pics", - "Views", - "Areas/**/Views", - "settings.json", - "web.config", - "project.json", - "Dockerfile" - ] - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "scripts": {}, - "tools": { - "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final" - }, - "userSecretsId": "aspnet-Catalog.API-20161122013618" -} \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj new file mode 100644 index 000000000..045003747 --- /dev/null +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -0,0 +1,65 @@ + + + + netcoreapp1.0 + portable + true + Identity.API + Exe + Identity.API + aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 + 1.1.0 + $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + + + + + PreserveNewest + + + + + + + + + + + + + + + + All + + + All + + + + + + + + + + + All + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Identity/Identity.API/Identity.API.xproj b/src/Services/Identity/Identity.API/Identity.API.xproj deleted file mode 100644 index c767e3c0b..000000000 --- a/src/Services/Identity/Identity.API/Identity.API.xproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - a579e108-5445-403d-a407-339ac4d1611b - Identity.API - .\obj - .\bin\ - v4.6 - - - 2.0 - - - - - - - \ No newline at end of file diff --git a/src/Services/Identity/Identity.API/project.json b/src/Services/Identity/Identity.API/project.json deleted file mode 100644 index fa9795162..000000000 --- a/src/Services/Identity/Identity.API/project.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "userSecretsId": "aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5", - - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0", - "Microsoft.AspNetCore.Diagnostics": "1.1.0", - "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0", - "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0", - "Microsoft.AspNetCore.Mvc": "1.1.0", - "Microsoft.AspNetCore.Routing": "1.1.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", - "Microsoft.AspNetCore.StaticFiles": "1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer.Design": { - "version": "1.1.0", - "type": "build" - }, - "Microsoft.EntityFrameworkCore.Tools": { - "version": "1.1.0-preview4-final", - "type": "build" - }, - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", - "Microsoft.Extensions.Logging": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0", - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.1.0-preview4-final", - "type": "build" - }, - "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { - "version": "1.1.0-preview4-final", - "type": "build" - }, - "IdentityServer4.AspNetIdentity": "1.0.0-rc3", - "IdentityServer4.EntityFramework": "1.0.0-rc3", - }, - - "tools": { - "BundlerMinifier.Core": "2.0.238", - "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final", - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", - "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", - "Microsoft.Extensions.SecretManager.Tools": "1.1.0-preview4-final", - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.1.0-preview4-final", - "imports": [ - "portable-net45+win8" - ] - } - }, - - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "portable-net45+win8" - ] - } - }, - - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "debugType": "portable" - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config", - "Dockerfile", - "docker-compose.yml", - ".dockerignore" - ] - }, - "scripts": { - "prepublish": [ - "bower install", - "dotnet bundle" - ] - //"postpublish": [ - // "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" - //] - } -} diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj new file mode 100644 index 000000000..0e118e0a1 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -0,0 +1,56 @@ + + + + netcoreapp1.1 + portable + true + Ordering.API + Exe + Ordering.API + aspnet-Ordering.API-20161122013547 + 1.1.0 + $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.xproj b/src/Services/Ordering/Ordering.API/Ordering.API.xproj deleted file mode 100644 index 376311e91..000000000 --- a/src/Services/Ordering/Ordering.API/Ordering.API.xproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - 231226ce-690b-4979-8870-9a79d80928e2 - Microsoft.eShopOnContainers.Services.Ordering.API - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.API/project.json b/src/Services/Ordering/Ordering.API/project.json deleted file mode 100644 index 291892b40..000000000 --- a/src/Services/Ordering/Ordering.API/project.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "MediatR.Extensions.Microsoft.DependencyInjection": "1.1.0", - "Autofac.Extensions.DependencyInjection": "4.0.0", - "Microsoft.AspNetCore.Mvc": "1.1.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel":"1.0.1", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", - "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Logging.Abstractions": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", - "Microsoft.EntityFrameworkCore": "1.1.0", - "Microsoft.EntityFrameworkCore.Design":"1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0", - "Microsoft.AspNetCore.Diagnostics": "1.1.0", - "Swashbuckle": "6.0.0-beta902", - "MediatR": "2.1.0", - "System.Reflection": "4.3.0", - "IdentityServer4.AccessTokenValidation": "1.0.1-rc3", - "Dapper": "1.50.2", - "Ordering.Domain": "1.0.0-*", - "Ordering.Infrastructure": "1.0.0-*" - }, - "tools": { - "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final", - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" - }, - "frameworks": { - "netcoreapp1.1": { - "imports": [ - "netstandard1.6.1", - "dnxcore50", - "portable-net451+win8" - ] - } - }, - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "debugType": "portable" - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "settings.json", - "web.config", - "docker-compose.yml", - "docker-compose.debug.yml", - "Dockerfile.debug", - "Dockerfile", - ".dockerignore" - ] - }, - "scripts": { - "postpublish": [ - "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" - ] - }, - "userSecretsId": "aspnet-Ordering.API-20161122013547" -} \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj new file mode 100644 index 000000000..b96e1884a --- /dev/null +++ b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj @@ -0,0 +1,14 @@ + + + + netstandard1.6.1 + Ordering.Domain + Ordering.Domain + 1.6.1 + $(PackageTargetFallback);dnxcore50 + false + false + false + + + diff --git a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.xproj b/src/Services/Ordering/Ordering.Domain/Ordering.Domain.xproj deleted file mode 100644 index 8c34c7562..000000000 --- a/src/Services/Ordering/Ordering.Domain/Ordering.Domain.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - f5598dcb-6dde-4661-ad9d-a55612da7e76 - Microsoft.eShopOnContainers.Services.Ordering.Domain - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.Domain/project.json b/src/Services/Ordering/Ordering.Domain/project.json deleted file mode 100644 index 2feeaa08d..000000000 --- a/src/Services/Ordering/Ordering.Domain/project.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "1.0.0-*", - - "dependencies": { - "NETStandard.Library": "1.6.1" - }, - - "frameworks": { - "netstandard1.6.1": { - "imports": "dnxcore50" - } - } -} diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj new file mode 100644 index 000000000..4ec458dbd --- /dev/null +++ b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj @@ -0,0 +1,23 @@ + + + + netstandard1.6.1 + Ordering.Infrastructure + Ordering.Infrastructure + 1.6.1 + $(PackageTargetFallback);dnxcore50 + false + false + false + + + + + + + + + + + + diff --git a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.xproj b/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.xproj deleted file mode 100644 index 21d5cdd3f..000000000 --- a/src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 95f1f07c-4d92-4742-bd07-e5b805aab651 - Microsoft.eShopOnContainers.Services.Ordering.Infrastructure - .\obj - .\bin\ - v4.5.1 - - - 2.0 - - - \ No newline at end of file diff --git a/src/Services/Ordering/Ordering.Infrastructure/project.json b/src/Services/Ordering/Ordering.Infrastructure/project.json deleted file mode 100644 index 5d5355dfc..000000000 --- a/src/Services/Ordering/Ordering.Infrastructure/project.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": "1.0.0-*", - - "dependencies": { - "NETStandard.Library": "1.6.1", - "Microsoft.EntityFrameworkCore": "1.1.0", - "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", - "Ordering.Domain": "1.0.0-*" - }, - - "frameworks": { - "netstandard1.6.1": { - "imports": "dnxcore50" - } - } -} diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj new file mode 100644 index 000000000..22d7faeae --- /dev/null +++ b/src/Web/WebMVC/WebMVC.csproj @@ -0,0 +1,58 @@ + + + + netcoreapp1.0 + portable + true + WebMVC + Exe + WebMVC + aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 + 1.1.0 + $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + All + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Web/WebMVC/eShopOnContainers.WebMVC.xproj b/src/Web/WebMVC/eShopOnContainers.WebMVC.xproj deleted file mode 100644 index fd881f974..000000000 --- a/src/Web/WebMVC/eShopOnContainers.WebMVC.xproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - f0333d8e-0b27-42b7-b2c6-78f3657624e2 - Microsoft.eShopOnContainers.WebMVC - .\obj - .\bin\ - v4.6 - - - 2.0 - - - - - - - diff --git a/src/Web/WebMVC/project.json b/src/Web/WebMVC/project.json deleted file mode 100644 index cc45e7095..000000000 --- a/src/Web/WebMVC/project.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "userSecretsId": "aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0", - "Microsoft.AspNetCore.Diagnostics": "1.1.0", - "Microsoft.AspNetCore.Mvc": "1.1.1", - "Microsoft.AspNetCore.Razor.Tools": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", - "Microsoft.AspNetCore.StaticFiles": "1.1.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", - "Microsoft.Extensions.Logging": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0", - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Newtonsoft.Json": "9.0.1", - "System.IdentityModel.Tokens.Jwt": "5.1.0", - "Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.1.0", - "Microsoft.AspNetCore.Authentication.JwtBearer": "1.1.0", - "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0", - "Microsoft.Extensions.Options": "1.1.0" - }, - "tools": { - "BundlerMinifier.Core": "2.0.238", - "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", - "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final", - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.0.0-preview2-final", - "imports": [ - "portable-net45+win8" - ] - } - }, - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "portable-net45+win8" - ] - } - }, - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "debugType": "portable" - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "appsettings.override.json", - "web.config", - "Dockerfile", - "docker-compose.yml", - ".dockerignore" - ] - }, - "scripts": { - "prepublish": [ - "bower install", - "dotnet bundle" - ], - "postpublish": [ - "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" - ] - } -} \ No newline at end of file diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj b/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj new file mode 100644 index 000000000..517b447f3 --- /dev/null +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj @@ -0,0 +1,59 @@ + + + + netcoreapp1.0 + portable + true + eShopOnContainers.WebSPA + Exe + eShopOnContainers.WebSPA + aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 + 1.1.0 + $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + All + + + + + + + + + + + + + + + + diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.xproj b/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.xproj deleted file mode 100644 index e4ab30de3..000000000 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.xproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - true - - - - 9842db3a-1391-48c7-a49c-2fabd0a18ac2 - eShopOnContainers.WebSPA - - - 2.0 - - - diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json b/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json deleted file mode 100644 index 1df90ea9a..000000000 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "userSecretsId": "aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.1.0", - "type": "platform" - }, - "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", - "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0", - "Microsoft.AspNetCore.Diagnostics": "1.1.0", - "Microsoft.AspNetCore.Mvc": "1.1.1", - "Microsoft.AspNetCore.Cors": "1.1.0", - "Microsoft.AspNetCore.Antiforgery": "1.1.0", - "Microsoft.AspNetCore.Authorization": "1.1.0", - "Newtonsoft.Json": "9.0.1", - "Webpack": "3.0.0", - "Microsoft.AspNetCore.AngularServices": "1.0.0-beta-000014", - "Microsoft.AspNetCore.Razor.Tools": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", - "Microsoft.AspNetCore.StaticFiles": "1.1.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", - "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Logging": "1.1.0", - "Microsoft.Extensions.Logging.Console": "1.1.0", - "Microsoft.Extensions.Logging.Debug": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { - "version": "1.0.0-preview2-final", - "type": "build" - }, - "Microsoft.AspNetCore.Http.Abstractions": "1.1.0", - "Microsoft.Extensions.Options": "1.1.0" - }, - "tools": { - "Microsoft.DotNet.Watcher.Tools": { - "version": "1.0.0-preview2-final", - "imports": "portable-net451+win8+dnxcore50" - }, - "Microsoft.AspNetCore.Razor.Tools": { - "version": "1.0.0-preview2-final", - "imports": "portable-net45+win8+dnxcore50" - }, - "Microsoft.AspNetCore.Server.IISIntegration.Tools": { - "version": "1.0.0-preview2-final", - "imports": "portable-net45+win8+dnxcore50" - }, - "Microsoft.Extensions.SecretManager.Tools": { - "version": "1.0.0-preview2-final", - "imports": "portable-net45+win8+dnxcore50" - }, - "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { - "version": "1.0.0-preview2-final", - "imports": [ - "portable-net45+win8+dnxcore50", - "portable-net45+win8" - ] - } - }, - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "portable-net45+win8" - ] - } - }, - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "compile": { - "exclude": [ - "node_modules", - "Client" - ] - }, - "debugType": "portable" - }, - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - "publishOptions": { - "include": [ - "appsettings.json", - "Client", - "typings", - "Views", - "tsconfig.json", - "tsd.json", - "web.config", - "config", - "wwwroot", - "dockerfile" - ] - }, - "scripts": { - "prepublish": [ - "npm run build:prod" - ], - "postpublish": [ - "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" - ] - }, - "tooling": { - "defaultNamespace": "eShopOnContainers.SPA" - } -} \ No newline at end of file diff --git a/test/Services/FunctionalTests/FunctionalTests.csproj b/test/Services/FunctionalTests/FunctionalTests.csproj new file mode 100644 index 000000000..61ba4b3f6 --- /dev/null +++ b/test/Services/FunctionalTests/FunctionalTests.csproj @@ -0,0 +1,34 @@ + + + + netcoreapp1.1 + FunctionalTests + FunctionalTests + true + 1.1.0 + $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + false + false + false + + + + + PreserveNewest + + + + + + + + + + + + + + + + + diff --git a/test/Services/FunctionalTests/FunctionalTests.xproj b/test/Services/FunctionalTests/FunctionalTests.xproj deleted file mode 100644 index f42aea110..000000000 --- a/test/Services/FunctionalTests/FunctionalTests.xproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 621e7211-58d0-45fd-9600-1cb490bd930e - FunctionalTests - .\obj - .\bin\ - v4.5.1 - - - 2.0 - - - - - - \ No newline at end of file diff --git a/test/Services/FunctionalTests/project.json b/test/Services/FunctionalTests/project.json deleted file mode 100644 index 9db48cfb1..000000000 --- a/test/Services/FunctionalTests/project.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "version": "1.0.0-*", - - "dependencies": { - "Microsoft.NETCore.App": { - "type": "platform", - "version": "1.1.0" - }, - "Microsoft.AspNetCore.TestHost": "1.1.0", - "dotnet-test-xunit": "2.2.0-preview2-build1029", - "Microsoft.DotNet.InternalAbstractions": "1.0.0", - "xunit": "2.2.0-beta4-build3444", - "Catalog.API": "1.0.0-*", - "Ordering.API": "1.0.0-*" - }, - "testRunner": "xunit", - //"runtimes": { - // "win10-x64": {} - //}, - "frameworks": { - "netcoreapp1.1": { - "imports": [ - "netstandard1.6.1", - "dnxcore50", - "portable-net451+win8" - ] - } - }, - "publishOptions": { - "include": [ - "settings.json", - "web.config" - ] - } -} diff --git a/test/Services/UnitTest/UnitTest.csproj b/test/Services/UnitTest/UnitTest.csproj new file mode 100644 index 000000000..ffa047249 --- /dev/null +++ b/test/Services/UnitTest/UnitTest.csproj @@ -0,0 +1,30 @@ + + + + netcoreapp1.1 + UnitTest + UnitTest + true + 1.1.0 + $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + false + false + false + + + + + + + + + + + + + + + + + + diff --git a/test/Services/UnitTest/UnitTest.xproj b/test/Services/UnitTest/UnitTest.xproj deleted file mode 100644 index 1d3c09c84..000000000 --- a/test/Services/UnitTest/UnitTest.xproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 7796f5d8-31fc-45a4-b673-19de5ba194cf - UnitTest - .\obj - .\bin\ - v4.5.2 - - - 2.0 - - - - - - \ No newline at end of file diff --git a/test/Services/UnitTest/project.json b/test/Services/UnitTest/project.json deleted file mode 100644 index e44322750..000000000 --- a/test/Services/UnitTest/project.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "version": "1.0.0-*", - - "dependencies": { - "Microsoft.NETCore.App": { - "type": "platform", - "version": "1.1.0" - }, - "MediatR": "2.1.0", - "Moq": "4.6.38-alpha", - "xunit": "2.2.0-beta4-build3444", - "Microsoft.AspNetCore.TestHost": "1.1.0", - "dotnet-test-xunit": "2.2.0-preview2-build1029", - "Ordering.API": "1.0.0-*", - "Ordering.Infrastructure": "1.0.0-*", - "Ordering.Domain": "1.0.0-*" - }, - "testRunner": "xunit", - "frameworks": { - "netcoreapp1.1": { - "imports": [ - "netstandard1.6.1", - "dnxcore50", - "portable-net451+win8" - ] - } - } -} From c7e362ac67bb00d3a73a033333109980bda446c7 Mon Sep 17 00:00:00 2001 From: etomas Date: Tue, 14 Feb 2017 18:11:51 +0100 Subject: [PATCH 02/18] Docker files ready for the Visual Studio Docker Tools Everything works as exepcted except SPA version which need further adjustments --- docker-compose-external.override.yml | 17 ---- docker-compose-external.yml | 16 ---- docker-compose.ci.build.yml | 9 ++ docker-compose.dcproj | 22 +++++ docker-compose.override.yml | 69 +++++++------- docker-compose.vs.debug.yml | 92 ++++++++++++++++++ docker-compose.vs.release.yml | 62 ++++++++++++ docker-compose.yml | 62 +++++++----- eShopOnContainers-ServicesAndWebApps.sln | 52 +++++++++- src/Console/eShopConsole/.dockerignore | 2 - src/Console/eShopConsole/Dockerfile | 5 - .../eShopConsole/docker-compose.dev.debug.yml | 14 --- .../docker-compose.dev.release.yml | 9 -- src/Console/eShopConsole/docker-compose.yml | 8 -- src/Services/Basket/Basket.API/.dockerignore | 5 +- .../Basket/Basket.API/Basket.API.csproj | 3 +- src/Services/Basket/Basket.API/Dockerfile | 8 +- .../Basket/Basket.API/docker-compose.yml | 40 -------- .../Catalog/Catalog.API/.dockerignore | 3 + .../Catalog/Catalog.API/Catalog.API.csproj | 3 +- src/Services/Catalog/Catalog.API/Dockerfile | 5 +- .../Catalog/Catalog.API/docker-compose.yml | 21 ---- .../Identity/Identity.API/.dockerignore | 3 + src/Services/Identity/Identity.API/Dockerfile | 8 +- .../Identity/Identity.API/Identity.API.csproj | 5 +- .../Identity/Identity.API/docker-compose.yml | 22 ----- .../Ordering/Ordering.API/.dockerignore | 5 +- src/Services/Ordering/Ordering.API/Dockerfile | 10 +- .../Ordering/Ordering.API/Ordering.API.csproj | 3 +- .../Ordering/Ordering.API/docker-compose.yml | 39 -------- src/Web/WebMVC/.dockerignore | 5 +- src/Web/WebMVC/Dockerfile | 8 +- src/Web/WebMVC/WebMVC.csproj | 5 +- src/Web/WebMVC/docker-compose.dev.debug.yml | 17 ---- src/Web/WebMVC/docker-compose.dev.release.yml | 9 -- src/Web/WebMVC/docker-compose.yml | 95 ------------------- .../eShopOnContainers.WebSPA/.dockerignore | 3 + .../eShopOnContainers.WebSPA/Dockerfile | 10 +- .../docker-compose.yml | 91 ------------------ .../eShopOnContainers.WebSPA.csproj | 5 +- 40 files changed, 362 insertions(+), 508 deletions(-) delete mode 100644 docker-compose-external.override.yml delete mode 100644 docker-compose-external.yml create mode 100644 docker-compose.ci.build.yml create mode 100644 docker-compose.dcproj create mode 100644 docker-compose.vs.debug.yml create mode 100644 docker-compose.vs.release.yml delete mode 100644 src/Console/eShopConsole/.dockerignore delete mode 100644 src/Console/eShopConsole/Dockerfile delete mode 100644 src/Console/eShopConsole/docker-compose.dev.debug.yml delete mode 100644 src/Console/eShopConsole/docker-compose.dev.release.yml delete mode 100644 src/Console/eShopConsole/docker-compose.yml delete mode 100644 src/Services/Basket/Basket.API/docker-compose.yml create mode 100644 src/Services/Catalog/Catalog.API/.dockerignore delete mode 100644 src/Services/Catalog/Catalog.API/docker-compose.yml create mode 100644 src/Services/Identity/Identity.API/.dockerignore delete mode 100644 src/Services/Identity/Identity.API/docker-compose.yml delete mode 100644 src/Services/Ordering/Ordering.API/docker-compose.yml delete mode 100644 src/Web/WebMVC/docker-compose.dev.debug.yml delete mode 100644 src/Web/WebMVC/docker-compose.dev.release.yml delete mode 100644 src/Web/WebMVC/docker-compose.yml create mode 100644 src/Web/WebSPA/eShopOnContainers.WebSPA/.dockerignore delete mode 100644 src/Web/WebSPA/eShopOnContainers.WebSPA/docker-compose.yml diff --git a/docker-compose-external.override.yml b/docker-compose-external.override.yml deleted file mode 100644 index e1a37a501..000000000 --- a/docker-compose-external.override.yml +++ /dev/null @@ -1,17 +0,0 @@ -# -# docker-compose.override.yml is used to set up local configuration environment -# Things like the external ports to use or secrets/passwords depend on the -# specific deployment environment you might be using. -# Further details and docs: https://docs.docker.com/compose/extends/ -# - -version: '2' - -services: - - sql.data: - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" diff --git a/docker-compose-external.yml b/docker-compose-external.yml deleted file mode 100644 index 1772cff3a..000000000 --- a/docker-compose-external.yml +++ /dev/null @@ -1,16 +0,0 @@ -# -# docker-compose.yml is used to set up the base config per container to be deployed -# Take into account that when deploying, this base configuration is merged with the -# configuration-per-environment specified at the docker-compose.override.yml -# Further details and docs: https://docs.docker.com/compose/extends/ -# -version: '2' - -services: - sql.data: - image: microsoft/mssql-server-linux - - basket.data: - image: redis - ports: - - "6379:6379" diff --git a/docker-compose.ci.build.yml b/docker-compose.ci.build.yml new file mode 100644 index 000000000..0a4b6e345 --- /dev/null +++ b/docker-compose.ci.build.yml @@ -0,0 +1,9 @@ +version: '2' + +services: + ci-build: + image: microsoft/aspnetcore-build:1.0-1.1 + volumes: + - .:/src + working_dir: /src + command: /bin/bash -c "dotnet restore ./eShopOnContainers-ServicesAndWebApps.sln && dotnet publish ./eShopOnContainers-ServicesAndWebApps.sln -c Release -o ./obj/Docker/publish" diff --git a/docker-compose.dcproj b/docker-compose.dcproj new file mode 100644 index 000000000..44b5c682f --- /dev/null +++ b/docker-compose.dcproj @@ -0,0 +1,22 @@ + + + + fea0c318-ffed-4d39-8781-265718ca43dd + True + http://localhost:{ServicePort}/api/values + basket.api + + + + + docker-compose.yml + + + docker-compose.yml + + + docker-compose.yml + + + + \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 41b08da1c..c07f0081d 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,36 +1,9 @@ -# -# docker-compose.override.yml is used to set up local configuration environment -# Things like the external ports to use or secrets/passwords depend on the -# specific deployment environment you might be using. -# Further details and docs: https://docs.docker.com/compose/extends/ -# - version: '2' services: - - webmvc: - environment: - - CatalogUrl=http://catalog.api:5101 - - OrderingUrl=http://ordering.api:5102 - #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - - BasketUrl=http://basket.api:5103 - ports: - - "5100:5100" - - webspa: - environment: - - CatalogUrl=http://10.0.75.1:5101 - - OrderingUrl=http://10.0.75.1:5102 - #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - - BasketUrl=http://10.0.75.1:5103 - ports: - - "5104:5104" - basket.api: environment: + - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=basket.data #- identityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - identityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. @@ -39,32 +12,58 @@ services: catalog.api: environment: + - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word #- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. - ExternalCatalogBaseUrl=http://10.0.75.1:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5101:5101" + + identity.api: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - SpaClient=http://localhost:5104 + - ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word + #- MvcClient=http://13.88.8.119:5100 #Remote: VM Needs to have public access at 5105. + - MvcClient=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. + ports: + - "5105:5105" + ordering.api: environment: + - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word #- identityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - identityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5102:5102" - identity.service: + eshoponcontainers.webspa: environment: - - SpaClient=http://localhost:5104 - - ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word - #- MvcClient=http://13.88.8.119:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. + - ASPNETCORE_ENVIRONMENT=Development + - CatalogUrl=http://10.0.75.1:5101 + - OrderingUrl=http://10.0.75.1:5102 + #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. + - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - BasketUrl=http://10.0.75.1:5103 ports: - - "5105:5105" + - "5104:5104" + + webmvc: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - CatalogUrl=http://catalog.api:5101 + - OrderingUrl=http://ordering.api:5102 + #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. + - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - BasketUrl=http://basket.api:5103 + ports: + - "5100:5100" sql.data: environment: - SA_PASSWORD=Pass@word - ACCEPT_EULA=Y ports: - - "5433:1433" + - "5433:1433" \ No newline at end of file diff --git a/docker-compose.vs.debug.yml b/docker-compose.vs.debug.yml new file mode 100644 index 000000000..7a43e4364 --- /dev/null +++ b/docker-compose.vs.debug.yml @@ -0,0 +1,92 @@ +version: '2' + +services: + basket.api: + image: basket.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Services/Basket/Basket.API:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + catalog.api: + image: catalog.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Services/Catalog/Catalog.API:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + identity.api: + image: identity.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Services/Identity/Identity.API:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + ordering.api: + image: ordering.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Services/Ordering/Ordering.API:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + eshoponcontainers.webspa: + image: eshoponcontainers.webspa:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Web/WebSPA/eShopOnContainers.WebSPA:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + webmvc: + image: webmvc:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Web/WebMVC:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" diff --git a/docker-compose.vs.release.yml b/docker-compose.vs.release.yml new file mode 100644 index 000000000..17248ac5c --- /dev/null +++ b/docker-compose.vs.release.yml @@ -0,0 +1,62 @@ +version: '2' + +services: + basket.api: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + catalog.api: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + identity.api: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + ordering.api: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + eshoponcontainers.webspa: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + webmvc: + build: + args: + source: ${DOCKER_BUILD_SOURCE} + volumes: + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" diff --git a/docker-compose.yml b/docker-compose.yml index 164e12653..094e9e2c8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,45 +1,57 @@ -# -# docker-compose.yml is used to set up the base config per container to be deployed -# Take into account that when deploying, this base configuration is merged with the -# configuration-per-environment specified at the docker-compose.override.yml -# Further details and docs: https://docs.docker.com/compose/extends/ -# version: '2' services: - webmvc: - image: eshop/web - depends_on: - - identity.service - - basket.api - - webspa: - image: eshop/webspa - depends_on: - - basket.api - - identity.service - basket.api: - image: eshop/basket.api + image: basket.api + build: + context: ./src/Services/Basket/Basket.API + dockerfile: Dockerfile depends_on: - basket.data - - identity.service + - identity.api catalog.api: - image: eshop/catalog.api + image: catalog.api + build: + context: ./src/Services/Catalog/Catalog.API + dockerfile: Dockerfile depends_on: - sql.data - ordering.api: - image: eshop/ordering.api + identity.api: + image: identity.api + build: + context: ./src/Services/Identity/Identity.API + dockerfile: Dockerfile depends_on: - sql.data - identity.service: - image: eshop/identity + ordering.api: + image: ordering.api + build: + context: ./src/Services/Ordering/Ordering.API + dockerfile: Dockerfile depends_on: - sql.data + eshoponcontainers.webspa: + image: eshoponcontainers.webspa + build: + context: ./src/Web/WebSPA/eShopOnContainers.WebSPA + dockerfile: Dockerfile + depends_on: + - identity.api + - basket.api + + webmvc: + image: webmvc + build: + context: ./src/Web/WebMVC + dockerfile: Dockerfile + depends_on: + - identity.api + - basket.api + sql.data: image: microsoft/mssql-server-linux diff --git a/eShopOnContainers-ServicesAndWebApps.sln b/eShopOnContainers-ServicesAndWebApps.sln index fd88b260e..fe855d789 100644 --- a/eShopOnContainers-ServicesAndWebApps.sln +++ b/eShopOnContainers-ServicesAndWebApps.sln @@ -7,8 +7,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{932D8224-11F EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3AF739CD-81D8-428D-A08A-0A58372DEBF6}" ProjectSection(SolutionItems) = preProject - docker-compose.override.yml = docker-compose.override.yml - docker-compose.yml = docker-compose.yml NuGet.config = NuGet.config EndProjectSection EndProject @@ -48,6 +46,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "test\Services\U EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" EndProject +Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{FEA0C318-FFED-4D39-8781-265718CA43DD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Ad-Hoc|Any CPU = Ad-Hoc|Any CPU @@ -446,6 +446,54 @@ Global {A579E108-5445-403D-A407-339AC4D1611B}.Release|x64.Build.0 = Release|Any CPU {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.ActiveCfg = Release|Any CPU {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Console/eShopConsole/.dockerignore b/src/Console/eShopConsole/.dockerignore deleted file mode 100644 index 63d337d41..000000000 --- a/src/Console/eShopConsole/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -docker-compose.yml -Dockerfile diff --git a/src/Console/eShopConsole/Dockerfile b/src/Console/eShopConsole/Dockerfile deleted file mode 100644 index fbeb2ec0c..000000000 --- a/src/Console/eShopConsole/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM microsoft/dotnet:1.0.1-core -ENTRYPOINT ["dotnet", "eShopConsole.dll"] -ARG source=. -WORKDIR /app -COPY $source . diff --git a/src/Console/eShopConsole/docker-compose.dev.debug.yml b/src/Console/eShopConsole/docker-compose.dev.debug.yml deleted file mode 100644 index c4d3f6941..000000000 --- a/src/Console/eShopConsole/docker-compose.dev.debug.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: '2' - -services: - eshopconsole: - build: - args: - source: obj/Docker/empty/ - labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" - volumes: - - .:/app - - ~/.nuget/packages:/root/.nuget/packages:ro - - ~/clrdbg:/clrdbg:ro - entrypoint: tail -f /dev/null diff --git a/src/Console/eShopConsole/docker-compose.dev.release.yml b/src/Console/eShopConsole/docker-compose.dev.release.yml deleted file mode 100644 index 7b12940a7..000000000 --- a/src/Console/eShopConsole/docker-compose.dev.release.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '2' - -services: - eshopconsole: - labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" - volumes: - - ~/clrdbg:/clrdbg:ro - entrypoint: tail -f /dev/null diff --git a/src/Console/eShopConsole/docker-compose.yml b/src/Console/eShopConsole/docker-compose.yml deleted file mode 100644 index 0f18b6ca3..000000000 --- a/src/Console/eShopConsole/docker-compose.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: '2' - -services: - eshopconsole: - image: user/eshopconsole${TAG} - build: - context: . - dockerfile: Dockerfile diff --git a/src/Services/Basket/Basket.API/.dockerignore b/src/Services/Basket/Basket.API/.dockerignore index 63d337d41..d8f8175f6 100644 --- a/src/Services/Basket/Basket.API/.dockerignore +++ b/src/Services/Basket/Basket.API/.dockerignore @@ -1,2 +1,3 @@ -docker-compose.yml -Dockerfile +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index c0a11ef9d..bd9f27fd6 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -1,4 +1,4 @@ - + netcoreapp1.1 @@ -9,6 +9,7 @@ Basket.API 1.1.0 $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + ..\..\..\..\docker-compose.dcproj diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile index bd3bad87b..bfc575ee1 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -1,6 +1,6 @@ FROM microsoft/aspnetcore:1.1 -ENTRYPOINT ["dotnet", "Basket.API.dll"] -ARG source=. +ARG source WORKDIR /app -ENV ASPNETCORE_URLS http://*:5103 -COPY $source . +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Basket.API.dll"] diff --git a/src/Services/Basket/Basket.API/docker-compose.yml b/src/Services/Basket/Basket.API/docker-compose.yml deleted file mode 100644 index 0935fc210..000000000 --- a/src/Services/Basket/Basket.API/docker-compose.yml +++ /dev/null @@ -1,40 +0,0 @@ -version: '2' - -services: - basket.api: - image: eshop/basket.api - environment: - - ConnectionString=basket.data - #- identityUrl=http://104.40.62.65:5105 #Remote: VM Needs to have public access at 5105. - - identityUrl=http://identity.service:5105 #Local: You need a entry in windows host file to run identity in local docker. - build: - context: . - dockerfile: Dockerfile - ports: - - "5103:5103" - depends_on: - - basket.data - - identity.service - - basket.data: - image: redis - - identity.service: - image: eshop/identity - environment: - - SpaClient=http://localhost:5104 - - ConnectionString=Server=identity.data;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word - #- MvcClient=http://104.40.62.65:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://localhost:5100 #Local: You need a entry in windows host file to run identity in local docker. - ports: - - "5105:5105" - depends_on: - - identity.data - - identity.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" diff --git a/src/Services/Catalog/Catalog.API/.dockerignore b/src/Services/Catalog/Catalog.API/.dockerignore new file mode 100644 index 000000000..d8f8175f6 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/.dockerignore @@ -0,0 +1,3 @@ +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj index 9ec9eee72..fba70291c 100644 --- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj +++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj @@ -1,4 +1,4 @@ - + netcoreapp1.1 @@ -10,6 +10,7 @@ aspnet-Catalog.API-20161122013618 1.1.0 $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + ..\..\..\..\docker-compose.dcproj diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index b2148694a..67f47d60d 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -1,5 +1,6 @@ FROM microsoft/aspnetcore:1.1 +ARG source WORKDIR /app EXPOSE 80 -COPY . /app -ENTRYPOINT dotnet Catalog.API.dll \ No newline at end of file +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Catalog.API.dll"] diff --git a/src/Services/Catalog/Catalog.API/docker-compose.yml b/src/Services/Catalog/Catalog.API/docker-compose.yml deleted file mode 100644 index d08b67180..000000000 --- a/src/Services/Catalog/Catalog.API/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '2' - -services: - catalog.api: - image: eshop/catalog.api - environment: - - ConnectionString=Server=catalog.data;Initial Catalog=CatalogData;User Id=sa;Password=Pass@word - expose: - - "80" - ports: - - "5101:80" - depends_on: - - catalog.data - - catalog.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5434:1433" diff --git a/src/Services/Identity/Identity.API/.dockerignore b/src/Services/Identity/Identity.API/.dockerignore new file mode 100644 index 000000000..d8f8175f6 --- /dev/null +++ b/src/Services/Identity/Identity.API/.dockerignore @@ -0,0 +1,3 @@ +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 5eb4acdb6..5ef6b4064 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -1,6 +1,6 @@ FROM microsoft/aspnetcore:1.1 -ENTRYPOINT ["dotnet", "Identity.API.dll"] -ARG source=. +ARG source WORKDIR /app -ENV ASPNETCORE_URLS http://*:5105 -COPY $source . +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Identity.API.dll"] diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 045003747..5ce6858e7 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -1,7 +1,7 @@ - + - netcoreapp1.0 + netcoreapp1.1 portable true Identity.API @@ -10,6 +10,7 @@ aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5 1.1.0 $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + ..\..\..\..\docker-compose.dcproj diff --git a/src/Services/Identity/Identity.API/docker-compose.yml b/src/Services/Identity/Identity.API/docker-compose.yml deleted file mode 100644 index 72933a273..000000000 --- a/src/Services/Identity/Identity.API/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '2' - -services: - identity.service: - image: eshop/identity - environment: - - SpaClient=http://localhost:5104 - - ConnectionStrings__DefaultConnection=Server=identity.data;Database=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word - #- MvcClient=http://104.40.62.65:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://localhost:5100 #Local: You need a entry in windows host file to run identity in local docker. - ports: - - "5105:5105" - depends_on: - - identity.data - - sql.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" diff --git a/src/Services/Ordering/Ordering.API/.dockerignore b/src/Services/Ordering/Ordering.API/.dockerignore index 63d337d41..d8f8175f6 100644 --- a/src/Services/Ordering/Ordering.API/.dockerignore +++ b/src/Services/Ordering/Ordering.API/.dockerignore @@ -1,2 +1,3 @@ -docker-compose.yml -Dockerfile +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index 6a736c1fc..719bff2f4 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -1,8 +1,6 @@ FROM microsoft/aspnetcore:1.1 - -# Entry point through the copied assembly -ENTRYPOINT ["dotnet", "Ordering.API.dll"] -ARG source=. +ARG source WORKDIR /app -ENV ASPNETCORE_URLS http://*:5102 -COPY $source . +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Ordering.API.dll"] diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 0e118e0a1..67b533c8c 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -1,4 +1,4 @@ - + netcoreapp1.1 @@ -10,6 +10,7 @@ aspnet-Ordering.API-20161122013547 1.1.0 $(PackageTargetFallback);netstandard1.6.1;dnxcore50;portable-net451+win8 + ..\..\..\..\docker-compose.dcproj diff --git a/src/Services/Ordering/Ordering.API/docker-compose.yml b/src/Services/Ordering/Ordering.API/docker-compose.yml deleted file mode 100644 index fa2f70fb7..000000000 --- a/src/Services/Ordering/Ordering.API/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: '2' - -services: - ordering.api: - image: eshop/ordering.api - environment: - - ConnectionString=Server=ordering.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word - ports: - - "5102:80" - depends_on: - - ordering.data - - ordering.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5432:1433" - - identity.service: - image: eshop/identity - environment: - - SpaClient=http://localhost:5104 - - ConnectionString=Server=identity.data;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word - #- MvcClient=http://104.40.62.65:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://localhost:5100 #Local: You need a entry in windows host file to run identity in local docker. - ports: - - "5105:5105" - depends_on: - - identity.data - - identity.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" \ No newline at end of file diff --git a/src/Web/WebMVC/.dockerignore b/src/Web/WebMVC/.dockerignore index 63d337d41..d8f8175f6 100644 --- a/src/Web/WebMVC/.dockerignore +++ b/src/Web/WebMVC/.dockerignore @@ -1,2 +1,3 @@ -docker-compose.yml -Dockerfile +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index 7ae55f27e..48252930c 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -1,6 +1,6 @@ FROM microsoft/aspnetcore:1.1 -ENTRYPOINT ["dotnet", "WebMVC.dll"] -ARG source=. +ARG source WORKDIR /app -ENV ASPNETCORE_URLS http://0.0.0.0:5100 -COPY $source . +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebMVC.dll"] diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 22d7faeae..41100b146 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -1,7 +1,7 @@ - + - netcoreapp1.0 + netcoreapp1.1 portable true WebMVC @@ -10,6 +10,7 @@ aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 1.1.0 $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + ..\..\..\docker-compose.dcproj diff --git a/src/Web/WebMVC/docker-compose.dev.debug.yml b/src/Web/WebMVC/docker-compose.dev.debug.yml deleted file mode 100644 index 85e1b082c..000000000 --- a/src/Web/WebMVC/docker-compose.dev.debug.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '2' - -services: - webmvc: - build: - args: - source: obj/Docker/empty/ - labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" - environment: - - ASPNETCORE_ENVIRONMENT=Development - - DOTNET_USE_POLLING_FILE_WATCHER=1 - volumes: - - .:/app - - ~/.nuget/packages:/root/.nuget/packages:ro - - ~/clrdbg:/clrdbg:ro - entrypoint: tail -f /dev/null diff --git a/src/Web/WebMVC/docker-compose.dev.release.yml b/src/Web/WebMVC/docker-compose.dev.release.yml deleted file mode 100644 index 901845620..000000000 --- a/src/Web/WebMVC/docker-compose.dev.release.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '2' - -services: - webmvc: - labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" - volumes: - - ~/clrdbg:/clrdbg:ro - entrypoint: tail -f /dev/null diff --git a/src/Web/WebMVC/docker-compose.yml b/src/Web/WebMVC/docker-compose.yml deleted file mode 100644 index 849abfbc2..000000000 --- a/src/Web/WebMVC/docker-compose.yml +++ /dev/null @@ -1,95 +0,0 @@ -version: '2' - -services: - webmvc: - image: eshop/web${TAG} - build: - context: . - dockerfile: Dockerfile - environment: - - CatalogUrl=http://catalog.api - - OrderingUrl=http://ordering.api - #- IdentityUrl=http://104.40.62.65:5105 - - IdentityUrl=http://identity.service:5105 #You need a entry in windows host file. - - BasketUrl=http://basket.api - - ASPNETCORE_ENVIRONMENT=Development - ports: - - "5100:5100" - depends_on: - - identity.service - - basket.api - links: - - identity.service:localhost # This line should be removed - - identity.service: - image: eshop/identity - environment: - - Spa=http://webspa - - ConnectionString=Server=identity.data;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word - - Mvc=http://webmvc - ports: - - "5105:5105" - depends_on: - - identity.data - - identity.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" - - basket.api: - image: eshop/basket.api - environment: - - ConnectionString=basket.data - #- identityUrl=http://104.40.62.65:5105 - - identityUrl=http://identity.service:5105 - build: - context: . - dockerfile: Dockerfile - ports: - - "5103:80" - depends_on: - - basket.data - - identity.service - - basket.data: - image: redis - - catalog.api: - image: eshop/catalog.api - environment: - - ConnectionString=Server=catalog.data;Database=CatalogDB;User Id=sa;Password=Pass@word - expose: - - "80" - ports: - - "5101:80" - depends_on: - - catalog.data - - catalog.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5434:1433" - - ordering.api: - image: eshop/ordering.api - environment: - - ConnectionString=Server=ordering.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word - ports: - - "5102:80" - depends_on: - - ordering.data - - ordering.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5432:1433" diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/.dockerignore b/src/Web/WebSPA/eShopOnContainers.WebSPA/.dockerignore new file mode 100644 index 000000000..d8f8175f6 --- /dev/null +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/.dockerignore @@ -0,0 +1,3 @@ +* +!obj/Docker/publish/* +!obj/Docker/empty/ diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/Dockerfile b/src/Web/WebSPA/eShopOnContainers.WebSPA/Dockerfile index b55f7527c..77306b6df 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/Dockerfile +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/Dockerfile @@ -1,8 +1,6 @@ FROM microsoft/aspnetcore:1.1 -ENTRYPOINT ["dotnet", "eShopOnContainers.WebSPA.dll"] -ARG source=. +ARG source WORKDIR /app -ENV ASPNETCORE_URLS http://0.0.0.0:5104 -COPY $source . - - +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "eShopOnContainers.WebSPA.dll"] diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/docker-compose.yml b/src/Web/WebSPA/eShopOnContainers.WebSPA/docker-compose.yml deleted file mode 100644 index 138573be5..000000000 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/docker-compose.yml +++ /dev/null @@ -1,91 +0,0 @@ -version: '2' - -services: - webspa: - image: eshop/webspa - build: - context: . - dockerfile: Dockerfile - environment: - - CatalogUrl=http://catalog.api - - OrderingUrl=http://ordering.api - #- IdentityUrl=http://104.40.62.65:5105 #Remote: VM Needs to have public access at 5105. - - IdentityUrl=http://identity.service:5105 #Local: You need a entry in windows host file to run identity in local docker. - - BasketUrl=http://basket.api - ports: - - "5104:80" - depends_on: - - basket.api - - identity.service - - identity.service: - image: eshop/identity - environment: - - SpaClient=http://localhost:5104 - - ConnectionString=Server=identity.data;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word - #- MvcClient=http://104.40.62.65:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://localhost:5100 #Local: You need a entry in windows host file to run identity in local docker. - ports: - - "5105:5105" - depends_on: - - identity.data - - identity.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" - - basket.api: - image: eshop/basket.api - environment: - - ConnectionString=basket.data - #- identityUrl=http://104.40.62.65:5105 #Remote: VM Needs to have public access at 5105. - - identityUrl=http://identity.service:5105 #Local: You need a entry in windows host file to run identity in local docker. - build: - context: . - dockerfile: Dockerfile - ports: - - "5103:5103" - depends_on: - - basket.data - - identity.service - - basket.data: - image: redis - - catalog.api: - image: eshop/catalog.api - environment: - - ConnectionString=Server=catalog.data;Database=CatalogDB;User Id=sa;Password=Pass@word - ports: - - "5101:80" - depends_on: - - catalog.data - - catalog.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5434:1433" - - ordering.api: - image: eshop/ordering.api - environment: - - ConnectionString=Server=ordering.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word - ports: - - "5102:80" - depends_on: - - ordering.data - - ordering.data: - image: microsoft/mssql-server-linux - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5432:1433" diff --git a/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj b/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj index 517b447f3..0479f6fe8 100644 --- a/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj +++ b/src/Web/WebSPA/eShopOnContainers.WebSPA/eShopOnContainers.WebSPA.csproj @@ -1,7 +1,7 @@ - + - netcoreapp1.0 + netcoreapp1.1 portable true eShopOnContainers.WebSPA @@ -10,6 +10,7 @@ aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 1.1.0 $(PackageTargetFallback);dotnet5.6;portable-net45+win8 + ..\..\..\..\docker-compose.dcproj From 9d7c588fc55bdc16a017a89d3c1afc70014df1ff Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 13 Feb 2017 12:17:59 -0800 Subject: [PATCH 03/18] Restore Ordering.API dependencies before build --- build-image-service-orders.ps1 | 16 +++++++++------- build-image-web-spa.ps1 | 16 +++++++++------- build-image-web.ps1 | 16 +++++++++------- build-images.ps1 | 19 ++++++++++--------- 4 files changed, 37 insertions(+), 30 deletions(-) diff --git a/build-image-service-orders.ps1 b/build-image-service-orders.ps1 index 6212bd60e..3e2137f8f 100644 --- a/build-image-service-orders.ps1 +++ b/build-image-service-orders.ps1 @@ -3,14 +3,16 @@ Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow #*** Ordering service image *** -$orderingPathToJson = $scriptPath + "\src\Services\Ordering\Ordering.API\project.json" -Write-Host "orderingPathToJson is $orderingPathToJson" -ForegroundColor Yellow -$orderingPathToPub = $scriptPath + "\pub\ordering" -Write-Host "orderingPathToPub is $orderingPathToPub" -ForegroundColor Yellow +$orderingPath = $scriptPath + "\src\Services\Ordering" +Write-Host "orderingPath is $orderingPath" -ForegroundColor Yellow +$orderingApiPathToJson = $orderingPath + "\Ordering.API\project.json" +Write-Host "orderingApiPathToJson is $orderingApiPathToJson" -ForegroundColor Yellow +$orderingApiPathToPub = $scriptPath + "\pub\ordering" +Write-Host "orderingApiPathToPub is $orderingApiPathToPub" -ForegroundColor Yellow Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue -dotnet restore $orderingPathToJson -dotnet build $orderingPathToJson -dotnet publish $orderingPathToJson -o $orderingPathToPub +dotnet restore $orderingPath +dotnet build $orderingApiPathToJson +dotnet publish $orderingApiPathToJson -o $orderingApiPathToPub docker build -t eshop/ordering.api $orderingPathToPub \ No newline at end of file diff --git a/build-image-web-spa.ps1 b/build-image-web-spa.ps1 index e28757366..548a5aaed 100644 --- a/build-image-web-spa.ps1 +++ b/build-image-web-spa.ps1 @@ -42,15 +42,17 @@ dotnet build $catalogPathToJson dotnet publish $catalogPathToJson -o $catalogPathToPub #*** Ordering service image *** -$orderingPathToJson = $scriptPath + "\src\Services\Ordering\Ordering.API\project.json" -Write-Host "orderingPathToJson is $orderingPathToJson" -ForegroundColor Yellow -$orderingPathToPub = $scriptPath + "\pub\ordering" -Write-Host "orderingPathToPub is $orderingPathToPub" -ForegroundColor Yellow +$orderingPath = $scriptPath + "\src\Services\Ordering" +Write-Host "orderingPath is $orderingPath" -ForegroundColor Yellow +$orderingApiPathToJson = $orderingPath + "\Ordering.API\project.json" +Write-Host "orderingApiPathToJson is $orderingApiPathToJson" -ForegroundColor Yellow +$orderingApiPathToPub = $scriptPath + "\pub\ordering" +Write-Host "orderingApiPathToPub is $orderingApiPathToPub" -ForegroundColor Yellow Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue -dotnet restore $orderingPathToJson -dotnet build $orderingPathToJson -dotnet publish $orderingPathToJson -o $orderingPathToPub +dotnet restore $orderingPath +dotnet build $orderingApiPathToJson +dotnet publish $orderingApiPathToJson -o $orderingApiPathToPub #*** Basket service image *** $basketPathToJson = $scriptPath + "\src\Services\Basket\Basket.API\project.json" diff --git a/build-image-web.ps1 b/build-image-web.ps1 index 1a2b06fdb..ef3a94b12 100644 --- a/build-image-web.ps1 +++ b/build-image-web.ps1 @@ -40,15 +40,17 @@ dotnet build $catalogPathToJson dotnet publish $catalogPathToJson -o $catalogPathToPub #*** Ordering service image *** -$orderingPathToJson = $scriptPath + "\src\Services\Ordering\Ordering.API\project.json" -Write-Host "orderingPathToJson is $orderingPathToJson" -ForegroundColor Yellow -$orderingPathToPub = $scriptPath + "\pub\ordering" -Write-Host "orderingPathToPub is $orderingPathToPub" -ForegroundColor Yellow +$orderingPath = $scriptPath + "\src\Services\Ordering" +Write-Host "orderingPath is $orderingPath" -ForegroundColor Yellow +$orderingApiPathToJson = $orderingPath + "\Ordering.API\project.json" +Write-Host "orderingApiPathToJson is $orderingApiPathToJson" -ForegroundColor Yellow +$orderingApiPathToPub = $scriptPath + "\pub\ordering" +Write-Host "orderingApiPathToPub is $orderingApiPathToPub" -ForegroundColor Yellow Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue -dotnet restore $orderingPathToJson -dotnet build $orderingPathToJson -dotnet publish $orderingPathToJson -o $orderingPathToPub +dotnet restore $orderingPath +dotnet build $orderingApiPathToJson +dotnet publish $orderingApiPathToJson -o $orderingApiPathToPub #*** Basket service image *** $basketPathToJson = $scriptPath + "\src\Services\Basket\Basket.API\project.json" diff --git a/build-images.ps1 b/build-images.ps1 index d498bb89d..54d928bf2 100644 --- a/build-images.ps1 +++ b/build-images.ps1 @@ -40,7 +40,6 @@ dotnet restore $identitySvcPathToJson dotnet build $identitySvcPathToJson dotnet publish $identitySvcPathToJson -o $identitySvcPathToPub - #*** Catalog service image *** $catalogPathToJson = $scriptPath + "\src\Services\Catalog\Catalog.API\project.json" Write-Host "catalogPathToJson is $catalogPathToJson" -ForegroundColor Yellow @@ -53,15 +52,17 @@ dotnet build $catalogPathToJson dotnet publish $catalogPathToJson -o $catalogPathToPub #*** Ordering service image *** -$orderingPathToJson = $scriptPath + "\src\Services\Ordering\Ordering.API\project.json" -Write-Host "orderingPathToJson is $orderingPathToJson" -ForegroundColor Yellow -$orderingPathToPub = $scriptPath + "\pub\ordering" -Write-Host "orderingPathToPub is $orderingPathToPub" -ForegroundColor Yellow +$orderingPath = $scriptPath + "\src\Services\Ordering" +Write-Host "orderingPath is $orderingPath" -ForegroundColor Yellow +$orderingApiPathToJson = $orderingPath + "\Ordering.API\project.json" +Write-Host "orderingApiPathToJson is $orderingApiPathToJson" -ForegroundColor Yellow +$orderingApiPathToPub = $scriptPath + "\pub\ordering" +Write-Host "orderingApiPathToPub is $orderingApiPathToPub" -ForegroundColor Yellow Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue -dotnet restore $orderingPathToJson -dotnet build $orderingPathToJson -dotnet publish $orderingPathToJson -o $orderingPathToPub +dotnet restore $orderingPath +dotnet build $orderingApiPathToJson +dotnet publish $orderingApiPathToJson -o $orderingApiPathToPub #*** Basket service image *** $basketPathToJson = $scriptPath + "\src\Services\Basket\Basket.API\project.json" @@ -83,7 +84,7 @@ docker rmi $(docker images -q) #*** build docker images *** docker build -t eshop/web $webPathToPub docker build -t eshop/catalog.api $catalogPathToPub -docker build -t eshop/ordering.api $orderingPathToPub +docker build -t eshop/ordering.api $orderingApiPathToPub docker build -t eshop/basket.api $basketPathToPub docker build -t eshop/webspa $webSPAPathToPub docker build -t eshop/identity $identitySvcPathToPub \ No newline at end of file From 0cd8ccf54bc8e64609b26fe58ee9d52aebd021ac Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 13 Feb 2017 12:55:34 -0800 Subject: [PATCH 04/18] Install WebSPA's npm dependencies before building --- build-image-web-spa.ps1 | 8 +++++--- build-images.ps1 | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build-image-web-spa.ps1 b/build-image-web-spa.ps1 index 548a5aaed..deee445d1 100644 --- a/build-image-web-spa.ps1 +++ b/build-image-web-spa.ps1 @@ -6,16 +6,18 @@ $pubFolderToDelete = $scriptPath + "\pub" remove-item -path $pubFolderToDelete -Force -Recurse -ErrorAction SilentlyContinue # *** WebSPA image *** -$webSPAPathToJson = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA\project.json" +$webSPAPath = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA" +$webSPAPathToJson = $webSPAPath + "\project.json" Write-Host "webSPAPathToJson is $webSPAPathToJson" -ForegroundColor Yellow $webSPAPathToPub = $scriptPath + "\pub\webSPA" -$webSPAPathToNpmBat = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA\buildspa.bat" Write-Host "webSPAPathToPub is $webSPAPathToPub" -ForegroundColor Yellow +Write-Host "Installing npm dependencies" +Start-Process -WorkingDirectory $webSPAPath -NoNewWindow -Wait npm i + Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue dotnet restore $webSPAPathToJson dotnet build $webSPAPathToJson -# Start-Process "cmd.exe" "/c " + $webSPAPathToNpmBat dotnet publish $webSPAPathToJson -o $webSPAPathToPub # *** identitySvc image *** diff --git a/build-images.ps1 b/build-images.ps1 index 54d928bf2..c10df08ed 100644 --- a/build-images.ps1 +++ b/build-images.ps1 @@ -17,16 +17,18 @@ dotnet build $webPathToJson dotnet publish $webPathToJson -o $webPathToPub # *** WebSPA image *** -$webSPAPathToJson = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA\project.json" +$webSPAPath = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA" +$webSPAPathToJson = $webSPAPath + "\project.json" Write-Host "webSPAPathToJson is $webSPAPathToJson" -ForegroundColor Yellow $webSPAPathToPub = $scriptPath + "\pub\webSPA" -$webSPAPathToNpmBat = $scriptPath + "\src\Web\WebSPA\eShopOnContainers.WebSPA\buildspa.bat" Write-Host "webSPAPathToPub is $webSPAPathToPub" -ForegroundColor Yellow +Write-Host "Installing npm dependencies" +Start-Process -WorkingDirectory $webSPAPath -NoNewWindow -Wait npm i + Write-Host "Restore Dependencies just in case as it is needed to run dotnet publish" -ForegroundColor Blue dotnet restore $webSPAPathToJson dotnet build $webSPAPathToJson -# Start-Process "cmd.exe" "/c " + $webSPAPathToNpmBat dotnet publish $webSPAPathToJson -o $webSPAPathToPub # *** identitySvc image *** From 8cfa4e7c568dcf7207f28222dada80aac0fb4673 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 13 Feb 2017 12:58:01 -0800 Subject: [PATCH 05/18] Correct Identity.API path --- build-image-web-spa.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-image-web-spa.ps1 b/build-image-web-spa.ps1 index deee445d1..c1361d966 100644 --- a/build-image-web-spa.ps1 +++ b/build-image-web-spa.ps1 @@ -21,7 +21,7 @@ dotnet build $webSPAPathToJson dotnet publish $webSPAPathToJson -o $webSPAPathToPub # *** identitySvc image *** -$identitySvcPathToJson = $scriptPath + "\src\Services\Identity\eShopOnContainers.Identity\project.json" +$identitySvcPathToJson = $scriptPath + "\src\Services\Identity\Identity.API\project.json" Write-Host "identitySvcPathToJson is $identitySvcPathToJson" -ForegroundColor Yellow $identitySvcPathToPub = $scriptPath + "\pub\identity" Write-Host "identitySvcPathToPub is $identitySvcPathToPub" -ForegroundColor Yellow From 5e544c0cabfce125ba63afd624a6b056e022d601 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Mon, 13 Feb 2017 13:34:25 -0800 Subject: [PATCH 06/18] Delete only eshop containers and images --- build-image-web-spa.ps1 | 9 ++++----- build-image-web.ps1 | 9 ++++----- build-images.ps1 | 9 ++++----- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/build-image-web-spa.ps1 b/build-image-web-spa.ps1 index c1361d966..ccecc0d36 100644 --- a/build-image-web-spa.ps1 +++ b/build-image-web-spa.ps1 @@ -67,11 +67,10 @@ dotnet restore $basketPathToJson dotnet build $basketPathToJson dotnet publish $basketPathToJson -o $basketPathToPub -#!/bin/bash -# Delete all containers -docker rm $(docker ps -a -q) -f -# Delete all images -docker rmi $(docker images -q) +# Delete all eshop containers +docker rm $(docker images --filter=reference="eshop/*" -q) -f +# Delete all eshop images +docker rmi $(docker images --filter=reference="eshop/*" -q) #*** build docker images *** docker build -t eshop/catalog.api $catalogPathToPub diff --git a/build-image-web.ps1 b/build-image-web.ps1 index ef3a94b12..e64711523 100644 --- a/build-image-web.ps1 +++ b/build-image-web.ps1 @@ -63,11 +63,10 @@ dotnet restore $basketPathToJson dotnet build $basketPathToJson dotnet publish $basketPathToJson -o $basketPathToPub -#!/bin/bash -# Delete all containers -docker rm $(docker ps -a -q) -f -# Delete all images -docker rmi $(docker images -q) +# Delete all eshop containers +docker rm $(docker images --filter=reference="eshop/*" -q) -f +# Delete all eshop images +docker rmi $(docker images --filter=reference="eshop/*" -q) #*** build docker images *** docker build -t eshop/web $webPathToPub diff --git a/build-images.ps1 b/build-images.ps1 index c10df08ed..c86453d3b 100644 --- a/build-images.ps1 +++ b/build-images.ps1 @@ -77,11 +77,10 @@ dotnet restore $basketPathToJson dotnet build $basketPathToJson dotnet publish $basketPathToJson -o $basketPathToPub -#!/bin/bash -# Delete all containers -docker rm $(docker ps -a -q) -f -# Delete all images -docker rmi $(docker images -q) +# Delete all eshop containers +docker rm $(docker images --filter=reference="eshop/*" -q) -f +# Delete all eshop images +docker rmi $(docker images --filter=reference="eshop/*" -q) #*** build docker images *** docker build -t eshop/web $webPathToPub From 33672d0e7c71dfa7eb2a148a91b760c6b25d6f08 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Tue, 14 Feb 2017 13:09:10 -0800 Subject: [PATCH 07/18] Update eShopOnContainers.sln --- eShopOnContainers.sln | 72 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 12 deletions(-) diff --git a/eShopOnContainers.sln b/eShopOnContainers.sln index cda4a14d8..63d62bb9c 100644 --- a/eShopOnContainers.sln +++ b/eShopOnContainers.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26213.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{932D8224-11F6-4D07-B109-DA28AD288A63}" EndProject @@ -25,19 +25,19 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Basket", "Basket", "{BF3EF4 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ordering", "Ordering", "{0BD0DB92-2D98-44D9-9AC0-C59186D59B0B}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.xproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basket.API", "src\Services\Basket\Basket.API\Basket.API.csproj", "{2110CBB0-3B38-4EE4-A743-DF6968D80D90}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.xproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "src\Services\Catalog\Catalog.API\Catalog.API.csproj", "{42681D9D-750A-4DF7-BD9F-9292CFD5C253}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.xproj", "{231226CE-690B-4979-8870-9A79D80928E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.API", "src\Services\Ordering\Ordering.API\Ordering.API.csproj", "{231226CE-690B-4979-8870-9A79D80928E2}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.xproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Domain", "src\Services\Ordering\Ordering.Domain\Ordering.Domain.csproj", "{F5598DCB-6DDE-4661-AD9D-A55612DA7E76}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A857AD10-40FF-4303-BEC2-FF1C58D5735E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Services", "Services", "{EF0337F2-ED00-4643-89FD-EE10863F1870}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "eShopOnContainers.WebMVC", "src\Web\WebMVC\eShopOnContainers.WebMVC.xproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebMVC", "src\Web\WebMVC\WebMVC.csproj", "{F0333D8E-0B27-42B7-B2C6-78F3657624E2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Droid", "src\Mobile\eShopOnContainers\eShopOnContainers.Droid\eShopOnContainers.Droid.csproj", "{62DBB163-9CA9-4818-B48B-13233DF37C24}" EndProject @@ -49,7 +49,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{9CC7814B-72A6-465B-A61C-57B512DEE303}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "eShopOnContainers.WebSPA", "src\Web\WebSPA\eShopOnContainers.WebSPA\eShopOnContainers.WebSPA.xproj", "{9842DB3A-1391-48C7-A49C-2FABD0A18AC2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "eShopOnContainers.WebSPA", "src\Web\WebSPA\eShopOnContainers.WebSPA\eShopOnContainers.WebSPA.csproj", "{9842DB3A-1391-48C7-A49C-2FABD0A18AC2}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mobile Apps", "Mobile Apps", "{B7B1D395-4E06-4036-BE86-C216756B9367}" EndProject @@ -61,19 +61,19 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.TestRunner.iOS", "src\Mobile\eShopOnContainers\eShopOnContainers.TestRunner.iOS\eShopOnContainers.TestRunner.iOS.csproj", "{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.xproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ordering.Infrastructure", "src\Services\Ordering\Ordering.Infrastructure\Ordering.Infrastructure.csproj", "{95F1F07C-4D92-4742-BD07-E5B805AAB651}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Identity", "Identity", "{02DF7FEE-C302-433D-A6CD-237A2569F236}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "FunctionalTests", "test\Services\FunctionalTests\FunctionalTests.xproj", "{621E7211-58D0-45FD-9600-1CB490BD930E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunctionalTests", "test\Services\FunctionalTests\FunctionalTests.csproj", "{621E7211-58D0-45FD-9600-1CB490BD930E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.UITests", "src\Mobile\eShopOnContainers\eShopOnContainers.UITests\eShopOnContainers.UITests.csproj", "{E3B18084-842C-4B80-8E4A-A7E588EC3137}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "src\Mobile\eShopOnContainers\eShopOnContainers.Core\eShopOnContainers.Core.csproj", "{67F9D3A8-F71E-4428-913F-C37AE82CDB24}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "UnitTest", "test\Services\UnitTest\UnitTest.xproj", "{7796F5D8-31FC-45A4-B673-19DE5BA194CF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest", "test\Services\UnitTest\UnitTest.csproj", "{7796F5D8-31FC-45A4-B673-19DE5BA194CF}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.xproj", "{A579E108-5445-403D-A407-339AC4D1611B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identity.API", "src\Services\Identity\Identity.API\Identity.API.csproj", "{A579E108-5445-403D-A407-339AC4D1611B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -956,6 +956,54 @@ Global {A579E108-5445-403D-A407-339AC4D1611B}.Release|x64.Build.0 = Release|Any CPU {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.ActiveCfg = Release|Any CPU {A579E108-5445-403D-A407-339AC4D1611B}.Release|x86.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.AppStore|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|ARM.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhone.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x64.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.ActiveCfg = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Debug|x86.Build.0 = Debug|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|Any CPU.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|ARM.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhone.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x64.Build.0 = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.ActiveCfg = Release|Any CPU + {FEA0C318-FFED-4D39-8781-265718CA43DD}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 13a7628603bbb8e8d5ef3bf19252796e2c796b48 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 14:39:51 -0800 Subject: [PATCH 08/18] Set webmvc project as by default startup project when F5 with Docker in VS 2017 --- docker-compose.dcproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.dcproj b/docker-compose.dcproj index 44b5c682f..91d4a272e 100644 --- a/docker-compose.dcproj +++ b/docker-compose.dcproj @@ -3,8 +3,8 @@ fea0c318-ffed-4d39-8781-265718ca43dd True - http://localhost:{ServicePort}/api/values - basket.api + http://localhost:5100 + webmvc From 02a1e78cb1c4888c405b891306b5f325550fc1ed Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 17:33:10 -0800 Subject: [PATCH 09/18] Updated docs to install Node (npm) so can install Bower and Gulp needed for the MVC app, until this is triggered from the .CSPROJ file as we were doing from the PROJECT.JSON in the MVC app --- README.md | 7 +++++-- img/Node_setup_for_npm.png | Bin 0 -> 50485 bytes 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 img/Node_setup_for_npm.png diff --git a/README.md b/README.md index 68d7640d0..e3f09f221 100644 --- a/README.md +++ b/README.md @@ -100,10 +100,13 @@ If you don't do this, you will get an error when trying to deploy/debug from VS #### Bower and Gulp global installation (These steps about installing bower and gulp might not be needed anymore as these are being triggered from the project.json in the MVC project at the section 'prepublish":'). However, this will need to be migrated to .csproj when migrating to VS 2017.

Before generating the Docker images, and specifically when generating the web apps binaries with "dotnet publish" from the custom scripts (like when running the build-images.ps1 script from PowerShell or the build-images.sh from bash in a Mac), it needs to have access to the paths where you have installed Bower and Gulp. For that, the recommendation is to install Bower and Gulp with a global installation by running the following commands from command-line or bash: +- Install Node if you don't have it installed, from here: https://nodejs.org/en/ + +- Install Bower and Gulp with the following npm commands (npm is installed as part of Node) -`npm install -g bower` + `npm install -g bower` -`npm install -g gulp` + `npm install -g gulp` Below you can see how those commands are run in Windows: diff --git a/img/Node_setup_for_npm.png b/img/Node_setup_for_npm.png new file mode 100644 index 0000000000000000000000000000000000000000..f45b4e784c9f028d585e40532a229360f36283c3 GIT binary patch literal 50485 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 Date: Wed, 15 Feb 2017 17:58:07 -0800 Subject: [PATCH 10/18] Improving when deleting eShop images, so if there are no eShop images it doesn't show an error, like it was happening with Charle's version --- build-images.ps1 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/build-images.ps1 b/build-images.ps1 index c86453d3b..2cd2ac1a6 100644 --- a/build-images.ps1 +++ b/build-images.ps1 @@ -77,10 +77,21 @@ dotnet restore $basketPathToJson dotnet build $basketPathToJson dotnet publish $basketPathToJson -o $basketPathToPub -# Delete all eshop containers -docker rm $(docker images --filter=reference="eshop/*" -q) -f -# Delete all eshop images -docker rmi $(docker images --filter=reference="eshop/*" -q) +$imagesToDelete = docker images --filter=reference="eshop/*" -q + +If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} +Else +{ + # Delete all eshop containers + Write-Host "Deleting eShop containers in local Docker Host" + docker rm $($imagesToDelete) -f + #docker rm $(docker images --filter=reference="eshop/*" -q) -f + + # Delete all eshop images + Write-Host "Deleting eShop images in local Docker repo" + docker rm $($imagesToDelete) -f + #docker rmi $(docker images --filter=reference="eshop/*" -q) +} #*** build docker images *** docker build -t eshop/web $webPathToPub From aae8283798568db932f89e2f80f9712c170db4ee Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 18:55:50 -0800 Subject: [PATCH 11/18] Marked all our images with eshop/ and added a delete-images.ps1 for eShop images --- build-images.ps1 | 11 +++++------ delete-images.ps1 | 28 ++++++++++++++++++++++++++++ docker-compose.vs.debug.yml | 12 ++++++------ docker-compose.yml | 12 ++++++------ 4 files changed, 45 insertions(+), 18 deletions(-) create mode 100644 delete-images.ps1 diff --git a/build-images.ps1 b/build-images.ps1 index 2cd2ac1a6..3a33a6ee7 100644 --- a/build-images.ps1 +++ b/build-images.ps1 @@ -82,15 +82,14 @@ $imagesToDelete = docker images --filter=reference="eshop/*" -q If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} Else { - # Delete all eshop containers - Write-Host "Deleting eShop containers in local Docker Host" - docker rm $($imagesToDelete) -f - #docker rm $(docker images --filter=reference="eshop/*" -q) -f + # Delete all containers + Write-Host "Deleting all containers in local Docker Host" + docker rm $(docker ps -a -q) -f # Delete all eshop images Write-Host "Deleting eShop images in local Docker repo" - docker rm $($imagesToDelete) -f - #docker rmi $(docker images --filter=reference="eshop/*" -q) + Write-Host $imagesToDelete + docker rmi $(docker images --filter=reference="eshop/*" -q) -f } #*** build docker images *** diff --git a/delete-images.ps1 b/delete-images.ps1 new file mode 100644 index 000000000..9167eec91 --- /dev/null +++ b/delete-images.ps1 @@ -0,0 +1,28 @@ +$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path + +Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow + +$imagesToDelete = docker images --filter=reference="eshop/*" -q + +If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} +Else +{ + # Delete all containers + Write-Host "Deleting all containers in local Docker Host" + docker rm $(docker ps -a -q) -f + + # Delete all eshop images + Write-Host "Deleting eShop images in local Docker repo" + Write-Host $imagesToDelete + docker rmi $(docker images --filter=reference="eshop/*" -q) -f +} + + +# DELETE ALL IMAGES AND CONTAINERS + +# Delete all containers +# docker rm $(docker ps -a -q) -f + +# Delete all images +# docker rmi $(docker images -q) + diff --git a/docker-compose.vs.debug.yml b/docker-compose.vs.debug.yml index 7a43e4364..4d6571e99 100644 --- a/docker-compose.vs.debug.yml +++ b/docker-compose.vs.debug.yml @@ -2,7 +2,7 @@ version: '2' services: basket.api: - image: basket.api:dev + image: eshop/basket.api:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -17,7 +17,7 @@ services: - "com.microsoft.visualstudio.targetoperatingsystem=linux" catalog.api: - image: catalog.api:dev + image: eshop/catalog.api:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -32,7 +32,7 @@ services: - "com.microsoft.visualstudio.targetoperatingsystem=linux" identity.api: - image: identity.api:dev + image: eshop/identity.api:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -47,7 +47,7 @@ services: - "com.microsoft.visualstudio.targetoperatingsystem=linux" ordering.api: - image: ordering.api:dev + image: eshop/ordering.api:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -62,7 +62,7 @@ services: - "com.microsoft.visualstudio.targetoperatingsystem=linux" eshoponcontainers.webspa: - image: eshoponcontainers.webspa:dev + image: eshop/eshoponcontainers.webspa:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -77,7 +77,7 @@ services: - "com.microsoft.visualstudio.targetoperatingsystem=linux" webmvc: - image: webmvc:dev + image: eshop/webmvc:dev build: args: source: ${DOCKER_BUILD_SOURCE} diff --git a/docker-compose.yml b/docker-compose.yml index 094e9e2c8..4e353f0b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '2' services: basket.api: - image: basket.api + image: eshop/basket.api build: context: ./src/Services/Basket/Basket.API dockerfile: Dockerfile @@ -11,7 +11,7 @@ services: - identity.api catalog.api: - image: catalog.api + image: eshop/catalog.api build: context: ./src/Services/Catalog/Catalog.API dockerfile: Dockerfile @@ -19,7 +19,7 @@ services: - sql.data identity.api: - image: identity.api + image: eshop/identity.api build: context: ./src/Services/Identity/Identity.API dockerfile: Dockerfile @@ -27,7 +27,7 @@ services: - sql.data ordering.api: - image: ordering.api + image: eshop/ordering.api build: context: ./src/Services/Ordering/Ordering.API dockerfile: Dockerfile @@ -35,7 +35,7 @@ services: - sql.data eshoponcontainers.webspa: - image: eshoponcontainers.webspa + image: eshop/eshoponcontainers.webspa build: context: ./src/Web/WebSPA/eShopOnContainers.WebSPA dockerfile: Dockerfile @@ -44,7 +44,7 @@ services: - basket.api webmvc: - image: webmvc + image: eshop/webmvc build: context: ./src/Web/WebMVC dockerfile: Dockerfile From 8ca6c0d5ac3c68bc79a3552bc8478251600455e1 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 19:32:21 -0800 Subject: [PATCH 12/18] Minor upgrade to the delete-images.ps1 --- delete-images.ps1 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/delete-images.ps1 b/delete-images.ps1 index 9167eec91..40f31a9ff 100644 --- a/delete-images.ps1 +++ b/delete-images.ps1 @@ -26,3 +26,6 @@ Else # Delete all images # docker rmi $(docker images -q) +#Filter by image name (Has to be complete, cannot be a wildcard) +#docker ps -q --filter=ancestor=eshop/identity.api:dev + From 422cad9f31a137684f7d337f6d3d26c01746b437 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 21:19:48 -0800 Subject: [PATCH 13/18] UPdates in README.MD for Firewall rule screenshot and better highlighted plus other minor changes --- README.md | 4 +++- img/Node_setup_for_npm.png | Bin 50485 -> 54073 bytes img/firewall-rule-for-eshop.png | Bin 0 -> 253070 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 img/firewall-rule-for-eshop.png diff --git a/README.md b/README.md index e3f09f221..19c514d32 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,9 @@ You can see the 6 custom containers running the microservices plus the 2 web app #### IMPORTANT: Open ports in Firewall so Authentication to the STS (Security Token Service container) can be done through the 10.0.75.1 IP which should be available and already setup by Docker - You can manually create a rule in your local firewall in your development machine or you can also create that rule by just executing the add-firewall-docker.ps1 script in the solution's root. -- Basically, you need to open the ports 5100 to 5105 that are used by the solution. +- Basically, you need to open the ports 5100 to 5105 that are used by the solution by creating an IN-BOUND RULE in your firewall, as shown in the screenshot below (for Windows). + + ### Test the applications and microservices Once the deploy process of docker-compose finishes you should be able to access the services in the following URLs or connection string, from your dev machine: diff --git a/img/Node_setup_for_npm.png b/img/Node_setup_for_npm.png index f45b4e784c9f028d585e40532a229360f36283c3..63329507007afa6b29b878f2af43b5d50e658e7c 100644 GIT binary patch literal 54073 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�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%0ApST9o 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 F^*^`$#JKygu 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 O=GoOe1k*|)|j(z++!;pC%|0IH=5^qGaUN6Z+ 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 Date: Wed, 15 Feb 2017 21:39:31 -0800 Subject: [PATCH 14/18] Fixed the bug in the Add-Firewall-Rules Script. Weird that it had the IPs in the wrong place.. --- ...ker.ps1 => add-firewall-rules-for-sts-auth-thru-docker.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename add-firewall-docker.ps1 => add-firewall-rules-for-sts-auth-thru-docker.ps1 (54%) diff --git a/add-firewall-docker.ps1 b/add-firewall-rules-for-sts-auth-thru-docker.ps1 similarity index 54% rename from add-firewall-docker.ps1 rename to add-firewall-rules-for-sts-auth-thru-docker.ps1 index 480227580..be63d8a25 100644 --- a/add-firewall-docker.ps1 +++ b/add-firewall-rules-for-sts-auth-thru-docker.ps1 @@ -21,6 +21,6 @@ try { Write-Host "Rule found" } catch [Exception] { - New-NetFirewallRule -DisplayName EshopDocker -Confirm -Description "Eshop on Containers" -LocalAddress 5100-5105 -LocalPort Any -Protocol tcp -RemoteAddress Any -RemotePort Any -Direction Inbound - New-NetFirewallRule -DisplayName EshopDocker -Confirm -Description "Eshop on Containers" -LocalAddress 5100-5105 -LocalPort Any -Protocol tcp -RemoteAddress Any -RemotePort Any -Direction Outbound + New-NetFirewallRule -DisplayName eShopOnContainers-Inbound -Confirm -Description "eShopOnContainers Inbound Rule for port range 5100-5105" -LocalAddress Any -LocalPort 5100-5105 -Protocol tcp -RemoteAddress Any -RemotePort Any -Direction Inbound + New-NetFirewallRule -DisplayName eShopOnContainers-Outbound -Confirm -Description "eShopOnContainers Outbound Rule for port range 5100-5105" -LocalAddress Any -LocalPort 5100-5105 -Protocol tcp -RemoteAddress Any -RemotePort Any -Direction Outbound } \ No newline at end of file From 68ad1895c62f2ddb1525686e8655dac95ce7cf90 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 15 Feb 2017 23:12:37 -0800 Subject: [PATCH 15/18] Fixed bug https://github.com/dotnet/eShopOnContainers/issues/45 with Retry with Exponential Backoff --- docker-compose.yml | 2 + src/Web/WebMVC/Services/CatalogService.cs | 15 +++- .../Utilities/RetryWithExponentialBackoff.cs | 90 +++++++++++++++++++ 3 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 src/Web/WebMVC/Services/Utilities/RetryWithExponentialBackoff.cs diff --git a/docker-compose.yml b/docker-compose.yml index 4e353f0b2..896663669 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,6 +49,8 @@ services: context: ./src/Web/WebMVC dockerfile: Dockerfile depends_on: + - catalog.api + - ordering.api - identity.api - basket.api diff --git a/src/Web/WebMVC/Services/CatalogService.cs b/src/Web/WebMVC/Services/CatalogService.cs index b830c9542..39576c43c 100644 --- a/src/Web/WebMVC/Services/CatalogService.cs +++ b/src/Web/WebMVC/Services/CatalogService.cs @@ -41,7 +41,20 @@ namespace Microsoft.eShopOnContainers.WebMVC.Services } var catalogUrl = $"{_remoteServiceBaseUrl}items{filterQs}?pageIndex={page}&pageSize={take}"; - var dataString = await _apiClient.GetStringAsync(catalogUrl); + + var dataString = ""; + + // + // Using HttpClient with Retry and Exponential Backoff + // + var retry = new RetryWithExponentialBackoff(); + await retry.RunAsync(async () => + { + // work with HttpClient call + dataString = await _apiClient.GetStringAsync(catalogUrl); + }); + + //var dataString = await _apiClient.GetStringAsync(catalogUrl); var response = JsonConvert.DeserializeObject(dataString); return response; diff --git a/src/Web/WebMVC/Services/Utilities/RetryWithExponentialBackoff.cs b/src/Web/WebMVC/Services/Utilities/RetryWithExponentialBackoff.cs new file mode 100644 index 000000000..fe2404fe0 --- /dev/null +++ b/src/Web/WebMVC/Services/Utilities/RetryWithExponentialBackoff.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; + +namespace Microsoft.eShopOnContainers.WebMVC.Services +{ + ///

+ /// When working with cloud services and Docker containers, it's very important to always catch + /// TimeoutException, and retry the operation. + /// RetryWithExponentialBackoff makes it easy to implement such pattern. + /// Usage: + /// var retry = new RetryWithExponentialBackoff(); + /// await retry.RunAsync(async ()=> + /// { + /// // work with HttpClient + /// }); + /// + public sealed class RetryWithExponentialBackoff + { + private readonly int maxRetries, delayMilliseconds, maxDelayMilliseconds; + + public RetryWithExponentialBackoff(int maxRetries = 5, int delayMilliseconds = 200, int maxDelayMilliseconds = 2000) + { + this.maxRetries = maxRetries; + this.delayMilliseconds = delayMilliseconds; + this.maxDelayMilliseconds = maxDelayMilliseconds; + } + + public async Task RunAsync(Func func) + { + ExponentialBackoff backoff = new ExponentialBackoff(this.maxRetries, this.delayMilliseconds, this.maxDelayMilliseconds); + retry: + try + { + await func(); + } + catch (Exception ex) when (ex is TimeoutException || ex is System.Net.Http.HttpRequestException) + { + Debug.WriteLine("Exception raised is: " + ex.GetType().ToString() + " -- Message: " + ex.Message + " -- Inner Message: " + ex.InnerException.Message); + await backoff.Delay(); + goto retry; + } + } + } + + + /// + /// Usage: + /// ExponentialBackoff backoff = new ExponentialBackoff(3, 10, 100); + /// retry: + /// try { + /// // ... + /// } + /// catch (Exception ex) { + /// await backoff.Delay(cancellationToken); + /// goto retry; + /// } + /// + public struct ExponentialBackoff + { + private readonly int m_maxRetries, m_delayMilliseconds, m_maxDelayMilliseconds; + private int m_retries, m_pow; + + public ExponentialBackoff(int maxRetries, int delayMilliseconds, int maxDelayMilliseconds) + { + m_maxRetries = maxRetries; + m_delayMilliseconds = delayMilliseconds; + m_maxDelayMilliseconds = maxDelayMilliseconds; + m_retries = 0; + m_pow = 1; + } + + public Task Delay() + { + if (m_retries == m_maxRetries) + { + throw new TimeoutException("Max retry attempts exceeded."); + } + ++m_retries; + if (m_retries < 31) + { + m_pow = m_pow << 1; // m_pow = Pow(2, m_retries - 1) + } + int delay = Math.Min(m_delayMilliseconds * (m_pow - 1) / 2, m_maxDelayMilliseconds); + return Task.Delay(delay); + } + } +} From ffeabf8f655dbf548e0f2e9ee5e9f8272f7d1d8a Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 15 Feb 2017 10:44:59 -0500 Subject: [PATCH 16/18] update build-images for Mac Until adding these, the project would not build correctly on a Mac. --- build-images.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) mode change 100644 => 100755 build-images.sh diff --git a/build-images.sh b/build-images.sh old mode 100644 new mode 100755 index 4e86be0e9..9f4cc354c --- a/build-images.sh +++ b/build-images.sh @@ -1,12 +1,16 @@ #!/bin/sh -#dotnet restore +dotnet restore rm -rf ./pub dotnet publish "$(pwd)/src/Web/WebMVC/project.json" -o "$(pwd)/pub/webMVC" dotnet publish "$(pwd)/src/Services/Catalog/Catalog.API/project.json" -o "$(pwd)/pub/catalog" dotnet publish "$(pwd)/src/Services/Ordering/Ordering.API/project.json" -o "$(pwd)/pub/ordering" dotnet publish "$(pwd)/src/Services/Basket/Basket.API/project.json" -o "$(pwd)/pub/basket" +dotnet publish "$(pwd)/src/Services/Identity/Identity.API/project.json" -o "$(pwd)/pub/identity" +dotnet publish "$(pwd)/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json" -o "$(pwd)/pub/WebSPA" docker build -t eshop/web "$(pwd)/pub/webMVC" docker build -t eshop/catalog.api "$(pwd)/pub/catalog" docker build -t eshop/ordering.api "$(pwd)/pub/ordering" -docker build -t eshop/basket.api "$(pwd)/pub/basket" \ No newline at end of file +docker build -t eshop/basket.api "$(pwd)/pub/basket" +docker build -t eshop/identity "$(pwd)/pub/identity" +docker build -t eshop/webspa "$(pwd)/pub/WebSPA" From 4e2583477b51bdd4f0808535ad9f87d6422fe7ed Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 15 Feb 2017 23:10:56 -0500 Subject: [PATCH 17/18] script working for SPA --- build-images.sh | 11 +++++++++-- docker-compose.override.yml | 29 +++++++++++++++++++---------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/build-images.sh b/build-images.sh index 9f4cc354c..2b778fe23 100755 --- a/build-images.sh +++ b/build-images.sh @@ -5,12 +5,19 @@ dotnet publish "$(pwd)/src/Web/WebMVC/project.json" -o "$(pwd)/pub/webMVC" dotnet publish "$(pwd)/src/Services/Catalog/Catalog.API/project.json" -o "$(pwd)/pub/catalog" dotnet publish "$(pwd)/src/Services/Ordering/Ordering.API/project.json" -o "$(pwd)/pub/ordering" dotnet publish "$(pwd)/src/Services/Basket/Basket.API/project.json" -o "$(pwd)/pub/basket" + +pushd "$(pwd)/src/Web/WebSPA/eShopOnContainers.WebSPA" +npm install +npm run build:prod +popd + +dotnet publish "$(pwd)/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json" -o "$(pwd)/pub/webSPA" + dotnet publish "$(pwd)/src/Services/Identity/Identity.API/project.json" -o "$(pwd)/pub/identity" -dotnet publish "$(pwd)/src/Web/WebSPA/eShopOnContainers.WebSPA/project.json" -o "$(pwd)/pub/WebSPA" docker build -t eshop/web "$(pwd)/pub/webMVC" docker build -t eshop/catalog.api "$(pwd)/pub/catalog" docker build -t eshop/ordering.api "$(pwd)/pub/ordering" docker build -t eshop/basket.api "$(pwd)/pub/basket" +docker build -t eshop/webspa "$(pwd)/pub/webSPA" docker build -t eshop/identity "$(pwd)/pub/identity" -docker build -t eshop/webspa "$(pwd)/pub/WebSPA" diff --git a/docker-compose.override.yml b/docker-compose.override.yml index c07f0081d..ea5e70064 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,12 +1,23 @@ version: '2' services: + + webmvc: + environment: + - CatalogUrl=http://catalog.api:5101 + - OrderingUrl=http://ordering.api:5102 + #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. + - IdentityUrl=http://identity.service:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - BasketUrl=http://basket.api:5103 + ports: + - "5100:5100" + basket.api: environment: - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=basket.data #- identityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - - identityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - identityUrl=http://identity.service:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5103:5103" @@ -15,18 +26,17 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word #- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. - - ExternalCatalogBaseUrl=http://10.0.75.1:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5101:5101" - identity.api: environment: - ASPNETCORE_ENVIRONMENT=Development - SpaClient=http://localhost:5104 - ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word #- MvcClient=http://13.88.8.119:5100 #Remote: VM Needs to have public access at 5105. - - MvcClient=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. + - MvcClient=http://localhost:5100 #Local: You need to open your local dev-machine firewall at range 5100-5105. ports: - "5105:5105" @@ -35,18 +45,17 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word #- identityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - - identityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - identityUrl=http://identity.service:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. ports: - "5102:5102" eshoponcontainers.webspa: environment: - - ASPNETCORE_ENVIRONMENT=Development - - CatalogUrl=http://10.0.75.1:5101 - - OrderingUrl=http://10.0.75.1:5102 + - CatalogUrl=http://localhost:5101 + - OrderingUrl=http://localhost:5102 #- IdentityUrl=http://13.88.8.119:5105 #Remote: VM Needs to have public access at 5105. - - IdentityUrl=http://10.0.75.1:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - - BasketUrl=http://10.0.75.1:5103 + - IdentityUrl=http://localhost:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + - BasketUrl=http://localhost:5103 ports: - "5104:5104" From c780eea876c40767640db44962d662af431c3ecd Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 16 Feb 2017 08:55:52 -0500 Subject: [PATCH 18/18] Add execute permissions on macOS --- build-images.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build-images.sh b/build-images.sh index 2b778fe23..7999f82c8 100755 --- a/build-images.sh +++ b/build-images.sh @@ -21,3 +21,4 @@ docker build -t eshop/ordering.api "$(pwd)/pub/ordering" docker build -t eshop/basket.api "$(pwd)/pub/basket" docker build -t eshop/webspa "$(pwd)/pub/webSPA" docker build -t eshop/identity "$(pwd)/pub/identity" +