-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.web
42 lines (38 loc) · 1.22 KB
/
Dockerfile.web
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Angular build
FROM node:14.5.0-stretch as nodeBuild
WORKDIR /src
COPY ProjectArena.WebClient .
WORKDIR /src/ProjectArena.WebClient
RUN npm install
RUN npm run build-docker --unsafe-perm=true --allow-root
# Dotnet restore
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS dotnetBuild
WORKDIR /src
COPY ProjectArena.Api/*.csproj ProjectArena.Api/
COPY ProjectArena.Application/*.csproj ProjectArena.Application/
COPY ProjectArena.Domain/*.csproj ProjectArena.Domain/
COPY ProjectArena.Engine/*.csproj ProjectArena.Engine/
COPY ProjectArena.Infrastructure/*.csproj ProjectArena.Infrastructure/
COPY ProjectArena.Tests/*.csproj ProjectArena.Tests/
WORKDIR /src/ProjectArena.Api
RUN dotnet restore
WORKDIR /src/ProjectArena.Tests
RUN dotnet restore
WORKDIR /src
COPY . .
# Dotnet testing
FROM dotnetBuild AS dotnetTesting
WORKDIR /src/ProjectArena.Api
RUN dotnet build
WORKDIR /src/ProjectArena.Tests
RUN dotnet test
# Dotnet publish
FROM dotnetBuild AS publish
WORKDIR /src/ProjectArena.Api
COPY --from=nodeBuild /src/dist/ wwwroot/
RUN dotnet publish -c Release -o /src/publish
# Run
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
WORKDIR /app
COPY --from=publish /src/publish .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet ProjectArena.Api.dll