Browse Source

Converts to use multi-stage build Dockerfile

1. Changes the build context of all services to the root level to be
able to access the dependencies for each project.
2. Commented out the prepublish scripts, these steps are moved into the
Dockerfile

Did not change any script yet, need help to identify what scripts we
need to change.
pull/417/head
yanchenw 7 years ago
parent
commit
091ed81e7b
33 changed files with 297 additions and 142 deletions
  1. +24
    -0
      .dockerignore
  2. +1
    -0
      docker-compose.dcproj
  3. +20
    -20
      docker-compose.yml
  4. +0
    -3
      src/Services/Basket/Basket.API/.dockerignore
  5. +0
    -9
      src/Services/Basket/Basket.API/Basket.API.csproj
  6. +22
    -3
      src/Services/Basket/Basket.API/Dockerfile
  7. +0
    -3
      src/Services/Catalog/Catalog.API/.dockerignore
  8. +0
    -3
      src/Services/Catalog/Catalog.API/Catalog.API.csproj
  9. +26
    -3
      src/Services/Catalog/Catalog.API/Dockerfile
  10. +0
    -3
      src/Services/Identity/Identity.API/.dockerignore
  11. +22
    -3
      src/Services/Identity/Identity.API/Dockerfile
  12. +0
    -3
      src/Services/Identity/Identity.API/Identity.API.csproj
  13. +0
    -3
      src/Services/Location/Locations.API/.dockerignore
  14. +22
    -3
      src/Services/Location/Locations.API/Dockerfile
  15. +0
    -3
      src/Services/Marketing/Marketing.API/.dockerignore
  16. +24
    -3
      src/Services/Marketing/Marketing.API/Dockerfile
  17. +0
    -3
      src/Services/Marketing/Marketing.API/Marketing.API.csproj
  18. +0
    -3
      src/Services/Ordering/Ordering.API/.dockerignore
  19. +27
    -3
      src/Services/Ordering/Ordering.API/Dockerfile
  20. +0
    -6
      src/Services/Ordering/Ordering.API/Ordering.API.csproj
  21. +0
    -3
      src/Services/Payment/Payment.API/.dockerignore
  22. +24
    -3
      src/Services/Payment/Payment.API/Dockerfile
  23. +0
    -3
      src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj
  24. +0
    -3
      src/Web/WebMVC/.dockerignore
  25. +23
    -3
      src/Web/WebMVC/Dockerfile
  26. +3
    -9
      src/Web/WebMVC/WebMVC.csproj
  27. +0
    -3
      src/Web/WebMonolithic/eShopWeb/.dockerignore
  28. +0
    -3
      src/Web/WebSPA/.dockerignore
  29. +23
    -3
      src/Web/WebSPA/Dockerfile
  30. +2
    -8
      src/Web/WebSPA/WebSPA.csproj
  31. +15
    -15
      src/Web/WebSPA/package-lock.json
  32. +0
    -3
      src/Web/WebStatus/.dockerignore
  33. +19
    -3
      src/Web/WebStatus/Dockerfile

+ 24
- 0
.dockerignore View File

@ -0,0 +1,24 @@
.dockerignore
.env
.git
.gitignore
.vs
.vscode
docker-compose.yml
docker-compose.*.yml
vsts-docs
test
ServiceFabric
readme
k8s
img
docs
deploy
Components
cli-windows
cli-mac
cli-linux
**/bin/
**/obj/
**/node_modules/
**/bower_components/

+ 1
- 0
docker-compose.dcproj View File

@ -9,6 +9,7 @@
<ProjectVersion>2.0</ProjectVersion> <ProjectVersion>2.0</ProjectVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<None Include=".dockerignore" />
<None Include="docker-compose.ci.build.yml" /> <None Include="docker-compose.ci.build.yml" />
<None Include="docker-compose.override.yml"> <None Include="docker-compose.override.yml">
<DependentUpon>docker-compose.yml</DependentUpon> <DependentUpon>docker-compose.yml</DependentUpon>


+ 20
- 20
docker-compose.yml View File

@ -5,8 +5,8 @@ services:
basket.api: basket.api:
image: eshop/basket.api:${TAG:-latest} image: eshop/basket.api:${TAG:-latest}
build: build:
context: ./src/Services/Basket/Basket.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Basket/Basket.API/Dockerfile
depends_on: depends_on:
- basket.data - basket.data
- identity.api - identity.api
@ -15,8 +15,8 @@ services:
catalog.api: catalog.api:
image: eshop/catalog.api:${TAG:-latest} image: eshop/catalog.api:${TAG:-latest}
build: build:
context: ./src/Services/Catalog/Catalog.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Catalog/Catalog.API/Dockerfile
depends_on: depends_on:
- sql.data - sql.data
- rabbitmq - rabbitmq
@ -24,16 +24,16 @@ services:
identity.api: identity.api:
image: eshop/identity.api:${TAG:-latest} image: eshop/identity.api:${TAG:-latest}
build: build:
context: ./src/Services/Identity/Identity.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Identity/Identity.API/Dockerfile
depends_on: depends_on:
- sql.data - sql.data
ordering.api: ordering.api:
image: eshop/ordering.api:${TAG:-latest} image: eshop/ordering.api:${TAG:-latest}
build: build:
context: ./src/Services/Ordering/Ordering.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Ordering/Ordering.API/Dockerfile
depends_on: depends_on:
- sql.data - sql.data
- rabbitmq - rabbitmq
@ -41,8 +41,8 @@ services:
marketing.api: marketing.api:
image: eshop/marketing.api:${TAG:-latest} image: eshop/marketing.api:${TAG:-latest}
build: build:
context: ./src/Services/Marketing/Marketing.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Marketing/Marketing.API/Dockerfile
depends_on: depends_on:
- sql.data - sql.data
- nosql.data - nosql.data
@ -52,8 +52,8 @@ services:
webspa: webspa:
image: eshop/webspa:${TAG:-latest} image: eshop/webspa:${TAG:-latest}
build: build:
context: ./src/Web/WebSPA
dockerfile: Dockerfile
context: .
dockerfile: ./src/Web/WebSPA/Dockerfile
depends_on: depends_on:
- catalog.api - catalog.api
- ordering.api - ordering.api
@ -64,8 +64,8 @@ services:
webmvc: webmvc:
image: eshop/webmvc:${TAG:-latest} image: eshop/webmvc:${TAG:-latest}
build: build:
context: ./src/Web/WebMVC
dockerfile: Dockerfile
context: .
dockerfile: ./src/Web/WebMVC/Dockerfile
depends_on: depends_on:
- catalog.api - catalog.api
- ordering.api - ordering.api
@ -76,22 +76,22 @@ services:
webstatus: webstatus:
image: eshop/webstatus:${TAG:-latest} image: eshop/webstatus:${TAG:-latest}
build: build:
context: ./src/Web/WebStatus
dockerfile: Dockerfile
context: .
dockerfile: ./src/Web/WebStatus/Dockerfile
payment.api: payment.api:
image: eshop/payment.api:${TAG:-latest} image: eshop/payment.api:${TAG:-latest}
build: build:
context: ./src/Services/Payment/Payment.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Payment/Payment.API/Dockerfile
depends_on: depends_on:
- rabbitmq - rabbitmq
locations.api: locations.api:
image: eshop/locations.api:${TAG:-latest} image: eshop/locations.api:${TAG:-latest}
build: build:
context: ./src/Services/Location/Locations.API
dockerfile: Dockerfile
context: .
dockerfile: ./src/Services/Location/Locations.API/Dockerfile
depends_on: depends_on:
- nosql.data - nosql.data
- rabbitmq - rabbitmq


+ 0
- 3
src/Services/Basket/Basket.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 0
- 9
src/Services/Basket/Basket.API/Basket.API.csproj View File

@ -10,9 +10,6 @@
<Content Update="web.config"> <Content Update="web.config">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content> </Content>
<Content Include=".dockerignore">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -33,10 +30,4 @@
<ProjectReference Include="..\..\..\BuildingBlocks\HealthChecks\src\Microsoft.Extensions.HealthChecks\Microsoft.Extensions.HealthChecks.csproj" /> <ProjectReference Include="..\..\..\BuildingBlocks\HealthChecks\src\Microsoft.Extensions.HealthChecks\Microsoft.Extensions.HealthChecks.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>

+ 22
- 3
src/Services/Basket/Basket.API/Dockerfile View File

@ -1,6 +1,25 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Basket/Basket.API/Basket.API.csproj src/Services/Basket/Basket.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Basket/Basket.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Basket.API.dll"] ENTRYPOINT ["dotnet", "Basket.API.dll"]

+ 0
- 3
src/Services/Catalog/Catalog.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 0
- 3
src/Services/Catalog/Catalog.API/Catalog.API.csproj View File

@ -61,9 +61,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Pics\*"> <None Update="Pics\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>


+ 26
- 3
src/Services/Catalog/Catalog.API/Dockerfile View File

@ -1,6 +1,29 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Catalog/Catalog.API/Catalog.API.csproj src/Services/Catalog/Catalog.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj src/BuildingBlocks/EventBus/IntegrationEventLogEF/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj src/BuildingBlocks/WebHostCustomization/WebHost.Customization/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.AzureStorage/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Catalog/Catalog.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Catalog.API.dll"] ENTRYPOINT ["dotnet", "Catalog.API.dll"]

+ 0
- 3
src/Services/Identity/Identity.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 22
- 3
src/Services/Identity/Identity.API/Dockerfile View File

@ -1,6 +1,25 @@
FROM microsoft/aspnetcore:2.0.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Identity/Identity.API/Identity.API.csproj src/Services/Identity/Identity.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/DataProtection/DataProtection/DataProtection.csproj src/BuildingBlocks/DataProtection/DataProtection/
COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj src/BuildingBlocks/WebHostCustomization/WebHost.Customization/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Identity/Identity.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Identity.API.dll"] ENTRYPOINT ["dotnet", "Identity.API.dll"]

+ 0
- 3
src/Services/Identity/Identity.API/Identity.API.csproj View File

@ -51,9 +51,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Setup\*"> <None Update="Setup\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>


+ 0
- 3
src/Services/Location/Locations.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 22
- 3
src/Services/Location/Locations.API/Dockerfile View File

@ -1,6 +1,25 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Location/Locations.API/Locations.API.csproj src/Services/Location/Locations.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Location/Locations.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Locations.API.dll"] ENTRYPOINT ["dotnet", "Locations.API.dll"]

+ 0
- 3
src/Services/Marketing/Marketing.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 24
- 3
src/Services/Marketing/Marketing.API/Dockerfile View File

@ -1,6 +1,27 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Marketing/Marketing.API/Marketing.API.csproj src/Services/Marketing/Marketing.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj src/BuildingBlocks/WebHostCustomization/WebHost.Customization/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.AzureStorage/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Marketing/Marketing.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Marketing.API.dll"] ENTRYPOINT ["dotnet", "Marketing.API.dll"]

+ 0
- 3
src/Services/Marketing/Marketing.API/Marketing.API.csproj View File

@ -45,9 +45,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Pics\*"> <None Update="Pics\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>


+ 0
- 3
src/Services/Ordering/Ordering.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 27
- 3
src/Services/Ordering/Ordering.API/Dockerfile View File

@ -1,6 +1,30 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Ordering/Ordering.API/Ordering.API.csproj src/Services/Ordering/Ordering.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj src/BuildingBlocks/EventBus/IntegrationEventLogEF/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/Services/Ordering/Ordering.Domain/Ordering.Domain.csproj src/Services/Ordering/Ordering.Domain/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHost.Customization.csproj src/BuildingBlocks/WebHostCustomization/WebHost.Customization/
COPY src/Services/Ordering/Ordering.Infrastructure/Ordering.Infrastructure.csproj src/Services/Ordering/Ordering.Infrastructure/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Ordering.API.dll"] ENTRYPOINT ["dotnet", "Ordering.API.dll"]

+ 0
- 6
src/Services/Ordering/Ordering.API/Ordering.API.csproj View File

@ -11,9 +11,6 @@
<Content Update="web.config;"> <Content Update="web.config;">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content> </Content>
<Content Include=".dockerignore;">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="Setup\**\*;"> <Content Include="Setup\**\*;">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content> </Content>
@ -54,9 +51,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Setup\*"> <None Update="Setup\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>


+ 0
- 3
src/Services/Payment/Payment.API/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 24
- 3
src/Services/Payment/Payment.API/Dockerfile View File

@ -1,6 +1,27 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Services/Payment/Payment.API/Payment.API.csproj src/Services/Payment/Payment.API/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEF.csproj src/BuildingBlocks/EventBus/IntegrationEventLogEF/
COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj src/BuildingBlocks/EventBus/EventBusServiceBus/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks.SqlServer/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Services/Payment/Payment.API
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Payment.API.dll"] ENTRYPOINT ["dotnet", "Payment.API.dll"]

+ 0
- 3
src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj View File

@ -150,9 +150,6 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<None Include="Dockerfile" /> <None Include="Dockerfile" />
<None Include=".dockerignore">
<DependentUpon>Dockerfile</DependentUpon>
</None>
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> <None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<None Include="Scripts\jquery-1.10.2.intellisense.js" /> <None Include="Scripts\jquery-1.10.2.intellisense.js" />
<Content Include="Scripts\bootstrap.js" /> <Content Include="Scripts\bootstrap.js" />


+ 0
- 3
src/Web/WebMVC/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 23
- 3
src/Web/WebMVC/Dockerfile View File

@ -1,6 +1,26 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Web/WebMVC/WebMVC.csproj src/Web/WebMVC/
COPY src/BuildingBlocks/DataProtection/DataProtection/DataProtection.csproj src/BuildingBlocks/DataProtection/DataProtection/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
COPY src/BuildingBlocks/Resilience/Resilience.Http/Resilience.Http.csproj src/BuildingBlocks/Resilience/Resilience.Http/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Web/WebMVC
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN bower install --allow-root
RUN dotnet bundle
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebMVC.dll"] ENTRYPOINT ["dotnet", "WebMVC.dll"]

+ 3
- 9
src/Web/WebMVC/WebMVC.csproj View File

@ -27,10 +27,10 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Fabric.MSBuild" Version="1.6.2" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Fabric.MSBuild" Version="1.6.2" />
</ItemGroup> </ItemGroup>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="bower install --allow-root" />
<!--<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="bower install - -allow-root" />
<Exec Command="dotnet bundle" Condition="'$(ASPNETCORE_ENVIRONMENT)'!='Development'" /> <Exec Command="dotnet bundle" Condition="'$(ASPNETCORE_ENVIRONMENT)'!='Development'" />
</Target>
</Target>-->
<ItemGroup> <ItemGroup>
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.5.357" /> <DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.5.357" />
@ -45,12 +45,6 @@
<ProjectReference Include="..\..\BuildingBlocks\Resilience\Resilience.Http\Resilience.Http.csproj" /> <ProjectReference Include="..\..\BuildingBlocks\Resilience\Resilience.Http\Resilience.Http.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="ViewModels\CampaignItem.cs" /> <None Include="ViewModels\CampaignItem.cs" />
</ItemGroup> </ItemGroup>


+ 0
- 3
src/Web/WebMonolithic/eShopWeb/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 0
- 3
src/Web/WebSPA/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 23
- 3
src/Web/WebSPA/Dockerfile View File

@ -1,6 +1,26 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Web/WebSPA/WebSPA.csproj src/Web/WebSPA/
COPY src/BuildingBlocks/DataProtection/DataProtection/DataProtection.csproj src/BuildingBlocks/DataProtection/DataProtection/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Web/WebSPA
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN npm rebuild node-sass
RUN npm install
RUN npm run build:prod
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebSPA.dll"] ENTRYPOINT ["dotnet", "WebSPA.dll"]

+ 2
- 8
src/Web/WebSPA/WebSPA.csproj View File

@ -36,14 +36,14 @@
</ItemGroup> </ItemGroup>
<!-- workaround for https://github.com/aspnet/websdk/issues/114 --> <!-- workaround for https://github.com/aspnet/websdk/issues/114 -->
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<!--<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm install" /> <Exec Command="npm install" />
<Exec Command="npm run build:prod" /> <Exec Command="npm run build:prod" />
<ItemGroup> <ItemGroup>
<_GeneratedFiles Include="$(GeneratedItemPatterns)" /> <_GeneratedFiles Include="$(GeneratedItemPatterns)" />
<ContentWithTargetPath Include="@(_GeneratedFiles)" TargetPath="%(Identity)" CopyToPublishDirectory="PreserveNewest" /> <ContentWithTargetPath Include="@(_GeneratedFiles)" TargetPath="%(Identity)" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup> </ItemGroup>
</Target>
</Target>-->
<ItemGroup> <ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" /> <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
@ -66,12 +66,6 @@
<ProjectReference Include="..\..\BuildingBlocks\HealthChecks\src\Microsoft.Extensions.HealthChecks\Microsoft.Extensions.HealthChecks.csproj" /> <ProjectReference Include="..\..\BuildingBlocks\HealthChecks\src\Microsoft.Extensions.HealthChecks\Microsoft.Extensions.HealthChecks.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="wwwroot\assets\" /> <Folder Include="wwwroot\assets\" />
</ItemGroup> </ItemGroup>


+ 15
- 15
src/Web/WebSPA/package-lock.json View File

@ -9243,15 +9243,6 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true "dev": true
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@ -9263,6 +9254,15 @@
"strip-ansi": "3.0.1" "strip-ansi": "3.0.1"
} }
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@ -10085,12 +10085,6 @@
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true "dev": true
}, },
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
},
"string-width": { "string-width": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@ -10118,6 +10112,12 @@
} }
} }
}, },
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
},
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",


+ 0
- 3
src/Web/WebStatus/.dockerignore View File

@ -1,3 +0,0 @@
*
!obj/Docker/publish/*
!obj/Docker/empty/

+ 19
- 3
src/Web/WebStatus/Dockerfile View File

@ -1,6 +1,22 @@
FROM microsoft/aspnetcore:2.0
ARG source
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
COPY ${source:-obj/Docker/publish} .
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY eShopOnContainers-ServicesAndWebApps.sln ./
COPY src/Web/WebStatus/WebStatus.csproj src/Web/WebStatus/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks/
COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks/
RUN dotnet restore
COPY . .
WORKDIR /src/src/Web/WebStatus
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebStatus.dll"] ENTRYPOINT ["dotnet", "WebStatus.dll"]

Loading…
Cancel
Save