From 5b97c7329b286f1e6fc1c39bea9b9411d5b6dd8c Mon Sep 17 00:00:00 2001 From: etomas Date: Thu, 23 Feb 2017 16:39:18 +0100 Subject: [PATCH 1/5] 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"] From 79615664cf5eb8b3a2145f581202fc4d49b360d1 Mon Sep 17 00:00:00 2001 From: etomas Date: Fri, 24 Feb 2017 18:07:52 +0100 Subject: [PATCH 2/5] Dockerfiles for win and linux containers --- .gitignore | 10 +++ _docker/nanowin/docker-compose.override.yml | 2 +- _docker/nanowin/docker-compose.vs.debug.yml | 14 ++--- _docker/nanowin/docker-compose.vs.release.yml | 14 ++--- _docker/nanowin/docker-compose.yml | 16 +++-- docker-compose.override.yml | 2 +- docker-compose.vs.debug.yml | 14 ++--- docker-compose.vs.release.yml | 62 ------------------- docker-compose.yml | 16 +++-- docker-use-platform.ps1 | 31 +++++++++- src/Services/Basket/Basket.API/Dockerfile | 2 +- .../Basket/Basket.API/Dockerfile.nanowin | 2 +- src/Services/Catalog/Catalog.API/Dockerfile | 2 +- .../Catalog/Catalog.API/Dockerfile.nanowin | 2 +- src/Services/Identity/Identity.API/Dockerfile | 2 +- .../Identity/Identity.API/Dockerfile.nanowin | 2 +- src/Services/Ordering/Ordering.API/Dockerfile | 2 +- .../Ordering/Ordering.API/Dockerfile.nanowin | 2 +- src/Web/WebMVC/Dockerfile | 2 +- src/Web/WebMVC/Dockerfile.nanowin | 2 +- src/Web/WebSPA/Dockerfile | 2 +- src/Web/WebSPA/Dockerfile.nanowin | 2 +- 22 files changed, 97 insertions(+), 108 deletions(-) delete mode 100644 docker-compose.vs.release.yml diff --git a/.gitignore b/.gitignore index e220f1e7b..86aca7c40 100644 --- a/.gitignore +++ b/.gitignore @@ -254,3 +254,13 @@ pub/ /src/Web/WebMVC/Properties/PublishProfiles/eShopOnContainersWebMVC2016 - Web Deploy-publish.ps1 /src/Web/WebMVC/Properties/PublishProfiles/publish-module.psm1 /src/Services/Identity/eShopOnContainers.Identity/Properties/launchSettings.json + +#docker-compose files are copied from nanowin or linux folders, so we need to ignore them +docker-compose.override.yml +docker-compose.vs.debug.yml +docker-compose.vs.release.yml +docker-compose.yml +docker-compose-external.override.yml +docker-compose-external.yml +#Same with Dockerfiles +/**/Dockerfile diff --git a/_docker/nanowin/docker-compose.override.yml b/_docker/nanowin/docker-compose.override.yml index 909cf4172..b6f9bb870 100644 --- a/_docker/nanowin/docker-compose.override.yml +++ b/_docker/nanowin/docker-compose.override.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: diff --git a/_docker/nanowin/docker-compose.vs.debug.yml b/_docker/nanowin/docker-compose.vs.debug.yml index 2446fdb2c..0a53cef7d 100644 --- a/_docker/nanowin/docker-compose.vs.debug.yml +++ b/_docker/nanowin/docker-compose.vs.debug.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: basket.api: @@ -14,7 +14,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" catalog.api: image: eshop/catalog.api:dev @@ -29,7 +29,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" identity.api: image: eshop/identity.api:dev @@ -44,7 +44,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" ordering.api: image: eshop/ordering.api:dev @@ -59,7 +59,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webspa: image: eshop/webspa:dev @@ -74,7 +74,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webmvc: image: eshop/webmvc:dev @@ -89,4 +89,4 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/_docker/nanowin/docker-compose.vs.release.yml b/_docker/nanowin/docker-compose.vs.release.yml index 4ea31f8ca..2c7b764a8 100644 --- a/_docker/nanowin/docker-compose.vs.release.yml +++ b/_docker/nanowin/docker-compose.vs.release.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: basket.api: @@ -9,7 +9,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" catalog.api: build: @@ -19,7 +19,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" identity.api: build: @@ -29,7 +29,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" ordering.api: build: @@ -39,7 +39,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webspa: build: @@ -49,7 +49,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webmvc: build: @@ -59,4 +59,4 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/_docker/nanowin/docker-compose.yml b/_docker/nanowin/docker-compose.yml index f3baeb346..1d27d2d43 100644 --- a/_docker/nanowin/docker-compose.yml +++ b/_docker/nanowin/docker-compose.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: basket.api: @@ -55,9 +55,17 @@ services: - basket.api sql.data: - image: microsoft/mssql-server-linux + image: microsoft/mssql-server-windows basket.data: - image: redis + image: eshop/redis + build: + context: ./extradf + dockerfile: Dockerfile ports: - - "6379:6379" + - "6379:6379" +networks: + default: + external: + name: nat + diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 909cf4172..b6f9bb870 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: diff --git a/docker-compose.vs.debug.yml b/docker-compose.vs.debug.yml index 2446fdb2c..0a53cef7d 100644 --- a/docker-compose.vs.debug.yml +++ b/docker-compose.vs.debug.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: basket.api: @@ -14,7 +14,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" catalog.api: image: eshop/catalog.api:dev @@ -29,7 +29,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" identity.api: image: eshop/identity.api:dev @@ -44,7 +44,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" ordering.api: image: eshop/ordering.api:dev @@ -59,7 +59,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webspa: image: eshop/webspa:dev @@ -74,7 +74,7 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" webmvc: image: eshop/webmvc:dev @@ -89,4 +89,4 @@ services: - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - - "com.microsoft.visualstudio.targetoperatingsystem=linux" + - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/docker-compose.vs.release.yml b/docker-compose.vs.release.yml deleted file mode 100644 index 4ea31f8ca..000000000 --- a/docker-compose.vs.release.yml +++ /dev/null @@ -1,62 +0,0 @@ -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-compose.yml b/docker-compose.yml index f3baeb346..1d27d2d43 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '2' +version: '2.1' services: basket.api: @@ -55,9 +55,17 @@ services: - basket.api sql.data: - image: microsoft/mssql-server-linux + image: microsoft/mssql-server-windows basket.data: - image: redis + image: eshop/redis + build: + context: ./extradf + dockerfile: Dockerfile ports: - - "6379:6379" + - "6379:6379" +networks: + default: + external: + name: nat + diff --git a/docker-use-platform.ps1 b/docker-use-platform.ps1 index d6ac6f2b4..c0509aa37 100644 --- a/docker-use-platform.ps1 +++ b/docker-use-platform.ps1 @@ -1,10 +1,34 @@ -Param([ValidateSet(“nanowin", "linux")] [String] [Parameter(Mandatory=$true)] $Platform) +Param( + [ValidateSet(“nanowin", "linux")] [String] [Parameter(Mandatory=$true)] $Platform, + [bool] $DeleteImages = $false + +) $scriptPath = Split-Path $script:MyInvocation.MyCommand.Path +$SourcePerPlatformDockerFilesPath = "$ScriptPath\_docker\$Platform\extradf" +$TargetPerPlatformDockerFilesPath = "$ScriptPath\extradf" + Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellow -Write-Host "Deleting eShop Docker images" -& "$ScriptPath\delete-images.ps1" + + +If ($DeleteImages) { + Write-Host "Deleting eShop Docker images" + & "$ScriptPath\delete-images.ps1" +} + +If (Test-Path $TargetPerPlatformDockerFilesPath) { + Write-Host "Found per-platform extra Docker files. Removing..." + Remove-Item "$TargetPerPlatformDockerFilesPath\" -Recurse -Force +} + +If (Test-Path $SourcePerPlatformDockerFilesPath) { + Write-Host "Copying per-platform extra Dockerfiles" + Copy-Item "$SourcePerPlatformDockerFilesPath\*" "$ScriptPath\extradf\" -Recurse -Force +} +else { + Write-Host "There are not extra Dockerfiles for platform $Platform" +} Write-Host "Changing Dockerfiles" Copy-Item "$ScriptPath\src\Services\Basket\Basket.API\Dockerfile.$Platform" "$ScriptPath\src\Services\Basket\Basket.API\Dockerfile" -Force @@ -17,4 +41,5 @@ Copy-Item "$ScriptPath\src\Web\WebSPA\Dockerfile.$Platform" "$ScriptPath\src\We 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 b/src/Services/Basket/Basket.API/Dockerfile index bfc575ee1..41127e339 100644 --- a/src/Services/Basket/Basket.API/Dockerfile +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Basket/Basket.API/Dockerfile.nanowin b/src/Services/Basket/Basket.API/Dockerfile.nanowin index bfc575ee1..41127e339 100644 --- a/src/Services/Basket/Basket.API/Dockerfile.nanowin +++ b/src/Services/Basket/Basket.API/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Catalog/Catalog.API/Dockerfile b/src/Services/Catalog/Catalog.API/Dockerfile index 67f47d60d..5aad21ad1 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.nanowin b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin index 67f47d60d..5aad21ad1 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile.nanowin +++ b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile index 5ef6b4064..01f5eb8c5 100644 --- a/src/Services/Identity/Identity.API/Dockerfile +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Identity/Identity.API/Dockerfile.nanowin b/src/Services/Identity/Identity.API/Dockerfile.nanowin index 5ef6b4064..01f5eb8c5 100644 --- a/src/Services/Identity/Identity.API/Dockerfile.nanowin +++ b/src/Services/Identity/Identity.API/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Ordering/Ordering.API/Dockerfile b/src/Services/Ordering/Ordering.API/Dockerfile index 719bff2f4..85b1f46b4 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Services/Ordering/Ordering.API/Dockerfile.nanowin b/src/Services/Ordering/Ordering.API/Dockerfile.nanowin index 719bff2f4..85b1f46b4 100644 --- a/src/Services/Ordering/Ordering.API/Dockerfile.nanowin +++ b/src/Services/Ordering/Ordering.API/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index 48252930c..fe622e8de 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Web/WebMVC/Dockerfile.nanowin b/src/Web/WebMVC/Dockerfile.nanowin index 48252930c..fe622e8de 100644 --- a/src/Web/WebMVC/Dockerfile.nanowin +++ b/src/Web/WebMVC/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index 03634a256..8c784ca6e 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 diff --git a/src/Web/WebSPA/Dockerfile.nanowin b/src/Web/WebSPA/Dockerfile.nanowin index 03634a256..8c784ca6e 100644 --- a/src/Web/WebSPA/Dockerfile.nanowin +++ b/src/Web/WebSPA/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/aspnetcore:1.1 +FROM microsoft/dotnet:1.1-runtime-nanoserver ARG source WORKDIR /app EXPOSE 80 From 92daab8fae61913c32bbea7d734b047cff711c2b Mon Sep 17 00:00:00 2001 From: etomas Date: Fri, 24 Feb 2017 18:09:08 +0100 Subject: [PATCH 3/5] Unwanted files (now Dockerfiles are autogenerated) --- docker-compose.ci.build.yml | 9 -- docker-compose.override.yml | 69 -------------- docker-compose.vs.debug.yml | 92 ------------------- docker-compose.yml | 71 -------------- src/Services/Basket/Basket.API/Dockerfile | 6 -- src/Services/Catalog/Catalog.API/Dockerfile | 6 -- src/Services/Identity/Identity.API/Dockerfile | 6 -- src/Services/Ordering/Ordering.API/Dockerfile | 6 -- src/Web/WebMVC/Dockerfile | 6 -- src/Web/WebSPA/Dockerfile | 6 -- 10 files changed, 277 deletions(-) delete mode 100644 docker-compose.ci.build.yml delete mode 100644 docker-compose.override.yml delete mode 100644 docker-compose.vs.debug.yml delete mode 100644 docker-compose.yml delete mode 100644 src/Services/Basket/Basket.API/Dockerfile delete mode 100644 src/Services/Catalog/Catalog.API/Dockerfile delete mode 100644 src/Services/Identity/Identity.API/Dockerfile delete mode 100644 src/Services/Ordering/Ordering.API/Dockerfile delete mode 100644 src/Web/WebMVC/Dockerfile delete mode 100644 src/Web/WebSPA/Dockerfile diff --git a/docker-compose.ci.build.yml b/docker-compose.ci.build.yml deleted file mode 100644 index 0a4b6e345..000000000 --- a/docker-compose.ci.build.yml +++ /dev/null @@ -1,9 +0,0 @@ -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.override.yml b/docker-compose.override.yml deleted file mode 100644 index b6f9bb870..000000000 --- a/docker-compose.override.yml +++ /dev/null @@ -1,69 +0,0 @@ -version: '2.1' - -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-compose.vs.debug.yml b/docker-compose.vs.debug.yml deleted file mode 100644 index 0a53cef7d..000000000 --- a/docker-compose.vs.debug.yml +++ /dev/null @@ -1,92 +0,0 @@ -version: '2.1' - -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=windows" - - 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=windows" - - 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=windows" - - 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=windows" - - 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=windows" - - 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=windows" diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 1d27d2d43..000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,71 +0,0 @@ -version: '2.1' - -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-windows - - basket.data: - image: eshop/redis - build: - context: ./extradf - dockerfile: Dockerfile - ports: - - "6379:6379" -networks: - default: - external: - name: nat - diff --git a/src/Services/Basket/Basket.API/Dockerfile b/src/Services/Basket/Basket.API/Dockerfile deleted file mode 100644 index 41127e339..000000000 --- a/src/Services/Basket/Basket.API/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -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 b/src/Services/Catalog/Catalog.API/Dockerfile deleted file mode 100644 index 5aad21ad1..000000000 --- a/src/Services/Catalog/Catalog.API/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -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 b/src/Services/Identity/Identity.API/Dockerfile deleted file mode 100644 index 01f5eb8c5..000000000 --- a/src/Services/Identity/Identity.API/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -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 b/src/Services/Ordering/Ordering.API/Dockerfile deleted file mode 100644 index 85b1f46b4..000000000 --- a/src/Services/Ordering/Ordering.API/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -ARG source -WORKDIR /app -EXPOSE 80 -COPY ${source:-obj/Docker/publish} . -ENTRYPOINT ["dotnet", "Ordering.API.dll"] diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile deleted file mode 100644 index fe622e8de..000000000 --- a/src/Web/WebMVC/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -ARG source -WORKDIR /app -EXPOSE 80 -COPY ${source:-obj/Docker/publish} . -ENTRYPOINT ["dotnet", "WebMVC.dll"] diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile deleted file mode 100644 index 8c784ca6e..000000000 --- a/src/Web/WebSPA/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver -ARG source -WORKDIR /app -EXPOSE 80 -COPY ${source:-obj/Docker/publish} . -ENTRYPOINT ["dotnet", "WebSPA.dll"] From c0efde5021685c10440b233a095978e1d59e24db Mon Sep 17 00:00:00 2001 From: etomas Date: Fri, 24 Feb 2017 18:10:13 +0100 Subject: [PATCH 4/5] Addind docker-compose.ci.build.yml to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 86aca7c40..9f460926c 100644 --- a/.gitignore +++ b/.gitignore @@ -262,5 +262,6 @@ docker-compose.vs.release.yml docker-compose.yml docker-compose-external.override.yml docker-compose-external.yml +docker-compose.ci.build.yml #Same with Dockerfiles /**/Dockerfile From faa24c757cf2f17f6253ca337bfea52369e1b7e3 Mon Sep 17 00:00:00 2001 From: etomas Date: Wed, 1 Mar 2017 12:03:37 +0100 Subject: [PATCH 5/5] Docker files added again docker-use-platform creates mark file --- .gitignore | 12 +-- docker-compose.ci.build.yml | 9 ++ docker-compose.override.yml | 69 ++++++++++++++ docker-compose.vs.debug.yml | 92 +++++++++++++++++++ docker-compose.vs.release.yml | 62 +++++++++++++ docker-compose.yml | 63 +++++++++++++ docker-use-platform.ps1 | 4 + src/Services/Basket/Basket.API/Dockerfile | 6 ++ src/Services/Catalog/Catalog.API/Dockerfile | 6 ++ src/Services/Identity/Identity.API/Dockerfile | 6 ++ src/Services/Ordering/Ordering.API/Dockerfile | 6 ++ src/Web/WebMVC/Dockerfile | 6 ++ src/Web/WebSPA/Dockerfile | 6 ++ 13 files changed, 337 insertions(+), 10 deletions(-) create mode 100644 docker-compose.ci.build.yml create mode 100644 docker-compose.override.yml create mode 100644 docker-compose.vs.debug.yml create mode 100644 docker-compose.vs.release.yml create mode 100644 docker-compose.yml create mode 100644 src/Services/Basket/Basket.API/Dockerfile create mode 100644 src/Services/Catalog/Catalog.API/Dockerfile create mode 100644 src/Services/Identity/Identity.API/Dockerfile create mode 100644 src/Services/Ordering/Ordering.API/Dockerfile create mode 100644 src/Web/WebMVC/Dockerfile create mode 100644 src/Web/WebSPA/Dockerfile diff --git a/.gitignore b/.gitignore index 9f460926c..963bee262 100644 --- a/.gitignore +++ b/.gitignore @@ -255,13 +255,5 @@ pub/ /src/Web/WebMVC/Properties/PublishProfiles/publish-module.psm1 /src/Services/Identity/eShopOnContainers.Identity/Properties/launchSettings.json -#docker-compose files are copied from nanowin or linux folders, so we need to ignore them -docker-compose.override.yml -docker-compose.vs.debug.yml -docker-compose.vs.release.yml -docker-compose.yml -docker-compose-external.override.yml -docker-compose-external.yml -docker-compose.ci.build.yml -#Same with Dockerfiles -/**/Dockerfile +#Ignore marker-file used to know which docker files we have. +.eshopdocker_* \ No newline at end of file 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.override.yml b/docker-compose.override.yml new file mode 100644 index 000000000..909cf4172 --- /dev/null +++ b/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-compose.vs.debug.yml b/docker-compose.vs.debug.yml new file mode 100644 index 000000000..2446fdb2c --- /dev/null +++ b/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-compose.vs.release.yml b/docker-compose.vs.release.yml new file mode 100644 index 000000000..4ea31f8ca --- /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" + + 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 new file mode 100644 index 000000000..f3baeb346 --- /dev/null +++ b/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 index c0509aa37..7233c3c1d 100644 --- a/docker-use-platform.ps1 +++ b/docker-use-platform.ps1 @@ -5,6 +5,7 @@ Param( ) $scriptPath = Split-Path $script:MyInvocation.MyCommand.Path +$Platform = $Platform.ToLowerInvariant() $SourcePerPlatformDockerFilesPath = "$ScriptPath\_docker\$Platform\extradf" $TargetPerPlatformDockerFilesPath = "$ScriptPath\extradf" @@ -42,4 +43,7 @@ Copy-Item "$ScriptPath\src\Web\WebSPA\Dockerfile.$Platform" "$ScriptPath\src\We Write-Host "Replacing Docker-compose" Copy-Item "$ScriptPath\_docker\$Platform\*.yml" "$ScriptPath\" -Force +Remove-Item "$ScriptPath\.eshopdocker_*" -Force -ErrorAction SilentlyContinue +New-Item "$ScriptPath\.eshopdocker_$Platform" -ItemType File | Out-Null + 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 b/src/Services/Basket/Basket.API/Dockerfile new file mode 100644 index 000000000..bfc575ee1 --- /dev/null +++ b/src/Services/Basket/Basket.API/Dockerfile @@ -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 b/src/Services/Catalog/Catalog.API/Dockerfile new file mode 100644 index 000000000..67f47d60d --- /dev/null +++ b/src/Services/Catalog/Catalog.API/Dockerfile @@ -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 b/src/Services/Identity/Identity.API/Dockerfile new file mode 100644 index 000000000..5ef6b4064 --- /dev/null +++ b/src/Services/Identity/Identity.API/Dockerfile @@ -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 b/src/Services/Ordering/Ordering.API/Dockerfile new file mode 100644 index 000000000..719bff2f4 --- /dev/null +++ b/src/Services/Ordering/Ordering.API/Dockerfile @@ -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 b/src/Web/WebMVC/Dockerfile new file mode 100644 index 000000000..48252930c --- /dev/null +++ b/src/Web/WebMVC/Dockerfile @@ -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 b/src/Web/WebSPA/Dockerfile new file mode 100644 index 000000000..03634a256 --- /dev/null +++ b/src/Web/WebSPA/Dockerfile @@ -0,0 +1,6 @@ +FROM microsoft/aspnetcore:1.1 +ARG source +WORKDIR /app +EXPOSE 80 +COPY ${source:-obj/Docker/publish} . +ENTRYPOINT ["dotnet", "WebSPA.dll"]