From 5b97c7329b286f1e6fc1c39bea9b9411d5b6dd8c Mon Sep 17 00:00:00 2001 From: etomas Date: Thu, 23 Feb 2017 16:39:18 +0100 Subject: [PATCH] Infrastructure to support Dockerfiles for both Windows & Linux --- _docker/linux/docker-compose.ci.build.yml | 9 ++ _docker/linux/docker-compose.override.yml | 69 ++++++++++++++ _docker/linux/docker-compose.vs.debug.yml | 92 +++++++++++++++++++ _docker/linux/docker-compose.vs.release.yml | 62 +++++++++++++ _docker/linux/docker-compose.yml | 63 +++++++++++++ _docker/nanowin/docker-compose.ci.build.yml | 9 ++ _docker/nanowin/docker-compose.override.yml | 69 ++++++++++++++ _docker/nanowin/docker-compose.vs.debug.yml | 92 +++++++++++++++++++ _docker/nanowin/docker-compose.vs.release.yml | 62 +++++++++++++ _docker/nanowin/docker-compose.yml | 63 +++++++++++++ docker-use-platform.ps1 | 20 ++++ .../Basket/Basket.API/Dockerfile.linux | 6 ++ .../Basket/Basket.API/Dockerfile.nanowin | 6 ++ .../Catalog/Catalog.API/Dockerfile.linux | 6 ++ .../Catalog/Catalog.API/Dockerfile.nanowin | 6 ++ .../Identity/Identity.API/Dockerfile.linux | 6 ++ .../Identity/Identity.API/Dockerfile.nanowin | 6 ++ .../Ordering/Ordering.API/Dockerfile.linux | 6 ++ .../Ordering/Ordering.API/Dockerfile.nanowin | 6 ++ src/Web/WebMVC/Dockerfile.linux | 6 ++ src/Web/WebMVC/Dockerfile.nanowin | 6 ++ src/Web/WebSPA/Dockerfile.linux | 6 ++ src/Web/WebSPA/Dockerfile.nanowin | 6 ++ 23 files changed, 682 insertions(+) create mode 100644 _docker/linux/docker-compose.ci.build.yml create mode 100644 _docker/linux/docker-compose.override.yml create mode 100644 _docker/linux/docker-compose.vs.debug.yml create mode 100644 _docker/linux/docker-compose.vs.release.yml create mode 100644 _docker/linux/docker-compose.yml create mode 100644 _docker/nanowin/docker-compose.ci.build.yml create mode 100644 _docker/nanowin/docker-compose.override.yml create mode 100644 _docker/nanowin/docker-compose.vs.debug.yml create mode 100644 _docker/nanowin/docker-compose.vs.release.yml create mode 100644 _docker/nanowin/docker-compose.yml create mode 100644 docker-use-platform.ps1 create mode 100644 src/Services/Basket/Basket.API/Dockerfile.linux create mode 100644 src/Services/Basket/Basket.API/Dockerfile.nanowin create mode 100644 src/Services/Catalog/Catalog.API/Dockerfile.linux create mode 100644 src/Services/Catalog/Catalog.API/Dockerfile.nanowin create mode 100644 src/Services/Identity/Identity.API/Dockerfile.linux create mode 100644 src/Services/Identity/Identity.API/Dockerfile.nanowin create mode 100644 src/Services/Ordering/Ordering.API/Dockerfile.linux create mode 100644 src/Services/Ordering/Ordering.API/Dockerfile.nanowin create mode 100644 src/Web/WebMVC/Dockerfile.linux create mode 100644 src/Web/WebMVC/Dockerfile.nanowin create mode 100644 src/Web/WebSPA/Dockerfile.linux create mode 100644 src/Web/WebSPA/Dockerfile.nanowin diff --git a/_docker/linux/docker-compose.ci.build.yml b/_docker/linux/docker-compose.ci.build.yml new file mode 100644 index 000000000..0a4b6e345 --- /dev/null +++ b/_docker/linux/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/linux/docker-compose.override.yml b/_docker/linux/docker-compose.override.yml new file mode 100644 index 000000000..909cf4172 --- /dev/null +++ b/_docker/linux/docker-compose.override.yml @@ -0,0 +1,69 @@ +version: '2' + +services: + + 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://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + ports: + - "5103:5103" + + 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://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://localhost:5100 #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://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + ports: + - "5102:5102" + + webspa: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - 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://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" + + 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" \ No newline at end of file diff --git a/_docker/linux/docker-compose.vs.debug.yml b/_docker/linux/docker-compose.vs.debug.yml new file mode 100644 index 000000000..2446fdb2c --- /dev/null +++ b/_docker/linux/docker-compose.vs.debug.yml @@ -0,0 +1,92 @@ +version: '2' + +services: + basket.api: + image: eshop/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: eshop/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: eshop/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: eshop/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" + + webspa: + image: eshop/webspa:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Web/WebSPA:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + webmvc: + image: eshop/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/linux/docker-compose.vs.release.yml b/_docker/linux/docker-compose.vs.release.yml new file mode 100644 index 000000000..4ea31f8ca --- /dev/null +++ b/_docker/linux/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" + + 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/linux/docker-compose.yml b/_docker/linux/docker-compose.yml new file mode 100644 index 000000000..f3baeb346 --- /dev/null +++ b/_docker/linux/docker-compose.yml @@ -0,0 +1,63 @@ +version: '2' + +services: + basket.api: + image: eshop/basket.api + build: + context: ./src/Services/Basket/Basket.API + dockerfile: Dockerfile + depends_on: + - basket.data + - identity.api + + catalog.api: + image: eshop/catalog.api + build: + context: ./src/Services/Catalog/Catalog.API + dockerfile: Dockerfile + depends_on: + - sql.data + + identity.api: + image: eshop/identity.api + build: + context: ./src/Services/Identity/Identity.API + dockerfile: Dockerfile + depends_on: + - sql.data + + ordering.api: + image: eshop/ordering.api + build: + context: ./src/Services/Ordering/Ordering.API + dockerfile: Dockerfile + depends_on: + - sql.data + + webspa: + image: eshop/webspa + build: + context: ./src/Web/WebSPA + dockerfile: Dockerfile + depends_on: + - identity.api + - basket.api + + webmvc: + image: eshop/webmvc + build: + context: ./src/Web/WebMVC + dockerfile: Dockerfile + depends_on: + - catalog.api + - ordering.api + - identity.api + - basket.api + + sql.data: + image: microsoft/mssql-server-linux + + basket.data: + image: redis + ports: + - "6379:6379" diff --git a/_docker/nanowin/docker-compose.ci.build.yml b/_docker/nanowin/docker-compose.ci.build.yml new file mode 100644 index 000000000..0a4b6e345 --- /dev/null +++ b/_docker/nanowin/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/nanowin/docker-compose.override.yml b/_docker/nanowin/docker-compose.override.yml new file mode 100644 index 000000000..909cf4172 --- /dev/null +++ b/_docker/nanowin/docker-compose.override.yml @@ -0,0 +1,69 @@ +version: '2' + +services: + + 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://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + ports: + - "5103:5103" + + 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://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://localhost:5100 #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://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + ports: + - "5102:5102" + + webspa: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - 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://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" + + 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" \ No newline at end of file diff --git a/_docker/nanowin/docker-compose.vs.debug.yml b/_docker/nanowin/docker-compose.vs.debug.yml new file mode 100644 index 000000000..2446fdb2c --- /dev/null +++ b/_docker/nanowin/docker-compose.vs.debug.yml @@ -0,0 +1,92 @@ +version: '2' + +services: + basket.api: + image: eshop/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: eshop/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: eshop/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: eshop/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" + + webspa: + image: eshop/webspa:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ./src/Web/WebSPA:/app + - ~/.nuget/packages:/root/.nuget/packages:ro + - ~/clrdbg:/clrdbg:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=linux" + + webmvc: + image: eshop/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/nanowin/docker-compose.vs.release.yml b/_docker/nanowin/docker-compose.vs.release.yml new file mode 100644 index 000000000..4ea31f8ca --- /dev/null +++ b/_docker/nanowin/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" + + 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/nanowin/docker-compose.yml b/_docker/nanowin/docker-compose.yml new file mode 100644 index 000000000..f3baeb346 --- /dev/null +++ b/_docker/nanowin/docker-compose.yml @@ -0,0 +1,63 @@ +version: '2' + +services: + basket.api: + image: eshop/basket.api + build: + context: ./src/Services/Basket/Basket.API + dockerfile: Dockerfile + depends_on: + - basket.data + - identity.api + + catalog.api: + image: eshop/catalog.api + build: + context: ./src/Services/Catalog/Catalog.API + dockerfile: Dockerfile + depends_on: + - sql.data + + identity.api: + image: eshop/identity.api + build: + context: ./src/Services/Identity/Identity.API + dockerfile: Dockerfile + depends_on: + - sql.data + + ordering.api: + image: eshop/ordering.api + build: + context: ./src/Services/Ordering/Ordering.API + dockerfile: Dockerfile + depends_on: + - sql.data + + webspa: + image: eshop/webspa + build: + context: ./src/Web/WebSPA + dockerfile: Dockerfile + depends_on: + - identity.api + - basket.api + + webmvc: + image: eshop/webmvc + build: + context: ./src/Web/WebMVC + dockerfile: Dockerfile + depends_on: + - catalog.api + - ordering.api + - identity.api + - basket.api + + sql.data: + image: microsoft/mssql-server-linux + + basket.data: + image: redis + ports: + - "6379:6379" diff --git a/docker-use-platform.ps1 b/docker-use-platform.ps1 new file mode 100644 index 000000000..d6ac6f2b4 --- /dev/null +++ b/docker-use-platform.ps1 @@ -0,0 +1,20 @@ +Param([ValidateSet(“nanowin", "linux")] [String] [Parameter(Mandatory=$true)] $Platform) + +$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path + +Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow +Write-Host "Deleting eShop Docker images" +& "$ScriptPath\delete-images.ps1" + +Write-Host "Changing Dockerfiles" +Copy-Item "$ScriptPath\src\Services\Basket\Basket.API\Dockerfile.$Platform" "$ScriptPath\src\Services\Basket\Basket.API\Dockerfile" -Force +Copy-Item "$ScriptPath\src\Services\Catalog\Catalog.API\Dockerfile.$Platform" "$ScriptPath\src\Services\Catalog\Catalog.API\Dockerfile" -Force +Copy-Item "$ScriptPath\src\Services\Identity\Identity.API\Dockerfile.$Platform" "$ScriptPath\src\Services\Identity\Identity.API\Dockerfile" -Force +Copy-Item "$ScriptPath\src\Services\Ordering\Ordering.API\Dockerfile.$Platform" "$ScriptPath\src\Services\Ordering\Ordering.API\Dockerfile" -Force + +Copy-Item "$ScriptPath\src\Web\WebMVC\Dockerfile.$Platform" "$ScriptPath\src\Web\WebMVC\Dockerfile" -Force +Copy-Item "$ScriptPath\src\Web\WebSPA\Dockerfile.$Platform" "$ScriptPath\src\Web\WebSPA\Dockerfile" -Force + +Write-Host "Replacing Docker-compose" +Copy-Item "$ScriptPath\_docker\$Platform\*.yml" "$ScriptPath\" -Force +Write-Host "Done. Docker files are set for platform: $Platform" \ No newline at end of file diff --git a/src/Services/Basket/Basket.API/Dockerfile.linux b/src/Services/Basket/Basket.API/Dockerfile.linux new file mode 100644 index 000000000..bfc575ee1 --- /dev/null +++ b/src/Services/Basket/Basket.API/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Basket.API.dll"] diff --git a/src/Services/Basket/Basket.API/Dockerfile.nanowin b/src/Services/Basket/Basket.API/Dockerfile.nanowin new file mode 100644 index 000000000..bfc575ee1 --- /dev/null +++ b/src/Services/Basket/Basket.API/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Basket.API.dll"] diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.linux b/src/Services/Catalog/Catalog.API/Dockerfile.linux new file mode 100644 index 000000000..67f47d60d --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Catalog.API.dll"] diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.nanowin b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin new file mode 100644 index 000000000..67f47d60d --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Catalog.API.dll"] diff --git a/src/Services/Identity/Identity.API/Dockerfile.linux b/src/Services/Identity/Identity.API/Dockerfile.linux new file mode 100644 index 000000000..5ef6b4064 --- /dev/null +++ b/src/Services/Identity/Identity.API/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Identity.API.dll"] diff --git a/src/Services/Identity/Identity.API/Dockerfile.nanowin b/src/Services/Identity/Identity.API/Dockerfile.nanowin new file mode 100644 index 000000000..5ef6b4064 --- /dev/null +++ b/src/Services/Identity/Identity.API/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Identity.API.dll"] diff --git a/src/Services/Ordering/Ordering.API/Dockerfile.linux b/src/Services/Ordering/Ordering.API/Dockerfile.linux new file mode 100644 index 000000000..719bff2f4 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Ordering.API.dll"] diff --git a/src/Services/Ordering/Ordering.API/Dockerfile.nanowin b/src/Services/Ordering/Ordering.API/Dockerfile.nanowin new file mode 100644 index 000000000..719bff2f4 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "Ordering.API.dll"] diff --git a/src/Web/WebMVC/Dockerfile.linux b/src/Web/WebMVC/Dockerfile.linux new file mode 100644 index 000000000..48252930c --- /dev/null +++ b/src/Web/WebMVC/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebMVC.dll"] diff --git a/src/Web/WebMVC/Dockerfile.nanowin b/src/Web/WebMVC/Dockerfile.nanowin new file mode 100644 index 000000000..48252930c --- /dev/null +++ b/src/Web/WebMVC/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebMVC.dll"] diff --git a/src/Web/WebSPA/Dockerfile.linux b/src/Web/WebSPA/Dockerfile.linux new file mode 100644 index 000000000..03634a256 --- /dev/null +++ b/src/Web/WebSPA/Dockerfile.linux @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebSPA.dll"] diff --git a/src/Web/WebSPA/Dockerfile.nanowin b/src/Web/WebSPA/Dockerfile.nanowin new file mode 100644 index 000000000..03634a256 --- /dev/null +++ b/src/Web/WebSPA/Dockerfile.nanowin @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebSPA.dll"]