diff --git a/cli-windows/start-windows-containers.ps1 b/cli-windows/start-windows-containers.ps1
index 85a182603..e89a89066 100644
--- a/cli-windows/start-windows-containers.ps1
+++ b/cli-windows/start-windows-containers.ps1
@@ -25,8 +25,8 @@ $env:ESHOP_AZURE_STORAGE_CATALOG_URL ="http://10.0.75.1:5101/api/v1/catalog/item
$env:ESHOP_AZURE_STORAGE_MARKETING_URL ="http://10.0.75.1:5110/api/v1/campaigns/[0]/pic/"
if (-Not $customEventBusLoginPassword) {
- docker-compose -f "$rootPath\docker-compose-windows.yml" -f "$rootPath\docker-compose.override.yml" -f "$rootPath\docker-compose.override.windows.yml" up
+ docker-compose -f "$rootPath\docker-compose.yml" -f "$rootPath\docker-compose.override.yml" -f "$rootPath\docker-compose.windows.yml" -f "$rootPath\docker-compose.override.windows.yml" up
}
else {
- docker-compose -f "$rootPath\docker-compose-windows.yml" -f "$rootPath\docker-compose.override.yml" up
+ docker-compose -f "$rootPath\docker-compose.yml" -f "$rootPath\docker-compose.override.yml" -f "$rootPath\docker-compose.windows.yml" up
}
diff --git a/docker-compose-windows.yml b/docker-compose-windows.yml
deleted file mode 100644
index cdcd6f56b..000000000
--- a/docker-compose-windows.yml
+++ /dev/null
@@ -1,138 +0,0 @@
-version: '3.4'
-
-services:
- basket.api:
- image: eshop/basket.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Basket/Basket.API/Dockerfile
- depends_on:
- - basket.data
- - identity.api
- - rabbitmq
-
- catalog.api:
- image: eshop/catalog.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Catalog/Catalog.API/Dockerfile
- depends_on:
- - sql.data
- - rabbitmq
-
- identity.api:
- image: eshop/identity.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Identity/Identity.API/Dockerfile
- depends_on:
- - sql.data
-
- ordering.api:
- image: eshop/ordering.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Ordering/Ordering.API/Dockerfile
- depends_on:
- - sql.data
- - rabbitmq
-
- ordering.backgroundtasks:
- image: eshop/ordering.backgroundtasks-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile
- depends_on:
- - sql.data
- - rabbitmq
-
- ordering.signalrhub:
- image: eshop/ordering.signalrhub:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Ordering/Ordering.SignalrHub/Dockerfile
- depends_on:
- - sql.data
- - identity.api
- - rabbitmq
-
- marketing.api:
- image: eshop/marketing.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Marketing/Marketing.API/Dockerfile
- depends_on:
- - sql.data
- - nosql.data
- - identity.api
- - rabbitmq
-
- webspa:
- image: eshop/webspa-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Web/WebSPA/Dockerfile
- depends_on:
- - catalog.api
- - ordering.api
- - identity.api
- - basket.api
- - marketing.api
-
- webmvc:
- image: eshop/webmvc-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Web/WebMVC/Dockerfile
- depends_on:
- - catalog.api
- - ordering.api
- - identity.api
- - basket.api
- - marketing.api
-
- webstatus:
- image: eshop/webstatus-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Web/WebStatus/Dockerfile
-
- payment.api:
- image: eshop/payment.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Payment/Payment.API/Dockerfile
- depends_on:
- - rabbitmq
-
- locations.api:
- image: eshop/locations.api-win:${TAG:-latest}
- build:
- context: .
- dockerfile: src/Services/Location/Locations.API/Dockerfile
- depends_on:
- - nosql.data
- - rabbitmq
-
- sql.data:
- image: microsoft/mssql-server-windows-developer
-
- nosql.data:
- image: mongo:windowsservercore
-
- basket.data:
- image: redis:nanoserver
- ports:
- - "6379:6379"
-
- rabbitmq:
- image: spring2/rabbitmq
- ports:
- - "15672:15672"
- - "5672:5672"
-
-networks:
- default:
- external:
- name: nat
-
diff --git a/docker-compose.override.windows.yml b/docker-compose.override.windows.yml
index 0d31493e6..dcaac7c45 100644
--- a/docker-compose.override.windows.yml
+++ b/docker-compose.override.windows.yml
@@ -37,11 +37,6 @@ services:
- EventBusUserName=admin
- EventBusPassword=password
- ordering.api:
- environment:
- - EventBusUserName=admin
- - EventBusPassword=password
-
ordering.backgroundtasks:
environment:
- EventBusUserName=admin
@@ -58,6 +53,6 @@ services:
- EventBusPassword=password
ordering.signalrhub:
- environment:
+ environment:
- EventBusUserName=admin
- - EventBusPassword=password
\ No newline at end of file
+ - EventBusPassword=password
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
index 98ad11c62..dcdaff236 100644
--- a/docker-compose.override.yml
+++ b/docker-compose.override.yml
@@ -252,8 +252,7 @@ services:
ports:
- "5200:80"
volumes:
- - ./src/ApiGateways/Mobile.Bff.Shopping/apigw:/app/configuration
-
+ - ./src/ApiGateways/Mobile.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}
mobilemarketingapigw:
environment:
- ASPNETCORE_ENVIRONMENT=Development
@@ -261,7 +260,7 @@ services:
ports:
- "5201:80"
volumes:
- - ./src/ApiGateways/Mobile.Bff.Marketing/apigw:/app/configuration
+ - ./src/ApiGateways/Mobile.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}
webshoppingapigw:
environment:
@@ -270,7 +269,7 @@ services:
ports:
- "5202:80"
volumes:
- - ./src/ApiGateways/Web.Bff.Shopping/apigw:/app/configuration
+ - ./src/ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}
webmarketingapigw:
environment:
@@ -279,7 +278,7 @@ services:
ports:
- "5203:80"
volumes:
- - ./src/ApiGateways/Web.Bff.Marketing/apigw:/app/configuration
+ - ./src/ApiGateways/Web.Bff.Marketing/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}
mobileshoppingagg:
environment:
diff --git a/docker-compose.windows.yml b/docker-compose.windows.yml
new file mode 100644
index 000000000..4b2eb1a9b
--- /dev/null
+++ b/docker-compose.windows.yml
@@ -0,0 +1,39 @@
+# This file contains specific services build and images for Windows Containers.
+#
+# MUST be used alongside "docker-compose.yml" in all windows container commands
+
+version: '3.4'
+
+services:
+ identity.api:
+ build:
+ args:
+ NODE_IMAGE: stefanscherer/node-windows:8.11
+
+ webmvc:
+ build:
+ args:
+ NODE_IMAGE: stefanscherer/node-windows:8.11
+
+ webspa:
+ build:
+ args:
+ NODE_IMAGE: stefanscherer/node-windows:8.11
+
+ sql.data:
+ image: microsoft/mssql-server-windows-developer
+
+ nosql.data:
+ image: mongo:windowsservercore
+
+ basket.data:
+ image: redis:nanoserver
+
+ rabbitmq:
+ image: spring2/rabbitmq
+
+
+networks:
+ default:
+ external:
+ name: nat
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 67879bcd7..097643a3c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -202,10 +202,10 @@ services:
build:
context: .
dockerfile: src/Web/WebSPA/Dockerfile
- depends_on:
- - webshoppingagg
- - webshoppingapigw
- - webmarketingapigw
+# depends_on:
+# - webshoppingagg
+# - webshoppingapigw
+# - webmarketingapigw
webmvc:
diff --git a/docker-scripts/linux/install-node.sh b/docker-scripts/linux/install-node.sh
new file mode 100644
index 000000000..73407aae9
--- /dev/null
+++ b/docker-scripts/linux/install-node.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+export NODE_DOWNLOAD_SHA 0e20787e2eda4cc31336d8327556ebc7417e8ee0a6ba0de96a09b0ec2b841f60
+curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \
+ && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \
+ && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \
+ && rm nodejs.tar.gz \
+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs
diff --git a/docker-scripts/win/install-node.cmd b/docker-scripts/win/install-node.cmd
new file mode 100644
index 000000000..eaa4e356c
--- /dev/null
+++ b/docker-scripts/win/install-node.cmd
@@ -0,0 +1,4 @@
+set NODE_VERSION=8.11.1
+curl -SL "https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-win-x64.zip" --output nodejs.zip
+tar -xf nodejs.zip -C c:\
+setx PATH "%PATH%;c:\node-v%NODE_VERSION%-win-x64"
\ No newline at end of file
diff --git a/src/Services/Identity/Identity.API/Dockerfile b/src/Services/Identity/Identity.API/Dockerfile
index 167b2bb25..3931a135b 100644
--- a/src/Services/Identity/Identity.API/Dockerfile
+++ b/src/Services/Identity/Identity.API/Dockerfile
@@ -1,22 +1,20 @@
+ARG NODE_IMAGE=node:8.11
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
-FROM microsoft/dotnet:2.1-sdk AS sdk-with-node
-ENV NODE_VERSION 8.11.1
-ENV NODE_DOWNLOAD_SHA 0e20787e2eda4cc31336d8327556ebc7417e8ee0a6ba0de96a09b0ec2b841f60
-RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \
- && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \
- && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \
- && rm nodejs.tar.gz \
- && ln -s /usr/local/bin/node /usr/local/bin/nodejs
-
-FROM sdk-with-node AS updated-npm
-RUN npm i -g npm
-
+FROM microsoft/dotnet:2.1-sdk as dotnet-build
+WORKDIR /src
-FROM updated-npm as build
+FROM ${NODE_IMAGE} as node-build
+WORKDIR /web
+COPY src/Services/Identity/Identity.API .
RUN npm install -g bower@1.8.4
+RUN bower install --allow-root
+
+FROM dotnet-build as build
+WORKDIR /src/src/Services/Identity/Identity.API/wwwroot
+COPY --from=node-build /web/wwwroot .
WORKDIR /src
COPY . .
WORKDIR /src/src/Services/Identity/Identity.API
diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj
index ca31685ab..cf4c39568 100644
--- a/src/Services/Identity/Identity.API/Identity.API.csproj
+++ b/src/Services/Identity/Identity.API/Identity.API.csproj
@@ -27,7 +27,6 @@
-
diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile
index bf104e83b..9847ad772 100644
--- a/src/Web/WebMVC/Dockerfile
+++ b/src/Web/WebMVC/Dockerfile
@@ -1,26 +1,24 @@
+ARG NODE_IMAGE=node:8.11
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
-FROM microsoft/dotnet:2.1-sdk AS sdk-with-node
-ENV NODE_VERSION 8.11.1
-ENV NODE_DOWNLOAD_SHA 0e20787e2eda4cc31336d8327556ebc7417e8ee0a6ba0de96a09b0ec2b841f60
-RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \
- && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \
- && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \
- && rm nodejs.tar.gz \
- && ln -s /usr/local/bin/node /usr/local/bin/nodejs
-
-FROM sdk-with-node AS updated-npm
-RUN npm i -g npm
+FROM microsoft/dotnet:2.1-sdk as dotnet-build
+WORKDIR /src
-FROM updated-npm as build
+FROM ${NODE_IMAGE} as node-build
+WORKDIR /web
+COPY src/Web/WebMVC .
RUN npm install -g bower@1.8.4
+RUN bower install --allow-root
+
+FROM dotnet-build as build
+WORKDIR /src/src/Web/WebMVC/wwwroot
+COPY --from=node-build /web/wwwroot .
WORKDIR /src
COPY . .
WORKDIR /src/src/Web/WebMVC
RUN dotnet restore -nowarn:msb3202,nu1503
-RUN dotnet build --no-restore -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj
index cc5b975b3..1426517d3 100644
--- a/src/Web/WebMVC/WebMVC.csproj
+++ b/src/Web/WebMVC/WebMVC.csproj
@@ -31,7 +31,6 @@
-
diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile
index 68cf0988b..4e806786c 100644
--- a/src/Web/WebSPA/Dockerfile
+++ b/src/Web/WebSPA/Dockerfile
@@ -1,28 +1,24 @@
+ARG NODE_IMAGE=node:8.11
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
-FROM microsoft/dotnet:2.1-sdk AS sdk-with-node
-ENV NODE_VERSION 8.11.1
-ENV NODE_DOWNLOAD_SHA 0e20787e2eda4cc31336d8327556ebc7417e8ee0a6ba0de96a09b0ec2b841f60
-RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \
- && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \
- && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \
- && rm nodejs.tar.gz \
- && ln -s /usr/local/bin/node /usr/local/bin/nodejs
+FROM microsoft/dotnet:2.1-sdk as dotnet-build
+WORKDIR /src
-FROM sdk-with-node AS updated-npm
-RUN npm i -g npm
+FROM ${NODE_IMAGE} as node-build
+WORKDIR /web
+COPY src/Web/WebSPA .
+RUN npm install
+RUN npm run build:prod
-FROM updated-npm as build
+FROM dotnet-build as publish
+WORKDIR /src/src/Web/WebSPA/wwwroot
+COPY --from=node-build /web/wwwroot .
WORKDIR /src
COPY . .
WORKDIR /src/src/Web/WebSPA
-RUN dotnet restore -nowarn:msb3202,nu1503
-RUN dotnet build --no-restore -c Release -o /app
-
-FROM build AS publish
-RUN dotnet publish --no-restore -c Release -o /app
+RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj
index 8d390cfc4..3f6e188c3 100644
--- a/src/Web/WebSPA/WebSPA.csproj
+++ b/src/Web/WebSPA/WebSPA.csproj
@@ -94,16 +94,6 @@
-
-
-
-
-
- <_GeneratedFiles Include="$(GeneratedItemPatterns)" />
-
-
-
-