isolate app from environment in /app directory

This commit is contained in:
Collin M. Barrett 2019-05-08 19:25:14 -05:00
parent 06b9b92e84
commit c11d017370
2 changed files with 14 additions and 11 deletions

View file

@ -3,6 +3,7 @@
# init base
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as base
WORKDIR /app
ENV DataDirectory__Path "data"
ENV ASPNETCORE_URLS "http://*:5000"
EXPOSE 5000
@ -12,18 +13,18 @@ ENTRYPOINT ["dotnet", "FilterLists.Api.dll"]
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
# restore
WORKDIR /src
WORKDIR /app/src
COPY src/FilterLists.Data/FilterLists.Data.csproj FilterLists.Data/
COPY src/FilterLists.Services/FilterLists.Services.csproj FilterLists.Services/
WORKDIR /src/FilterLists.Api
WORKDIR /app/src/FilterLists.Api
COPY src/FilterLists.Api/FilterLists.Api.csproj .
RUN dotnet restore
# build
WORKDIR /src
WORKDIR /app/src
COPY src/FilterLists.Data/. FilterLists.Data/
COPY src/FilterLists.Services/. FilterLists.Services/
WORKDIR /src/FilterLists.Api
WORKDIR /app/src/FilterLists.Api
COPY src/FilterLists.Api/. .
RUN dotnet build -c Release --no-restore
@ -32,7 +33,7 @@ FROM build AS test-data
ENTRYPOINT ["dotnet", "test"]
# restore Data.Tests
WORKDIR /tests/FilterLists.Data.Tests
WORKDIR /app/tests/FilterLists.Data.Tests
COPY tests/FilterLists.Data.Tests/FilterLists.Data.Tests.csproj .
RUN dotnet restore
@ -46,7 +47,7 @@ FROM build AS test-services
ENTRYPOINT ["dotnet", "test"]
# restore Services.Tests
WORKDIR /tests/FilterLists.Services.Tests
WORKDIR /app/tests/FilterLists.Services.Tests
COPY tests/FilterLists.Services.Tests/FilterLists.Services.Tests.csproj .
RUN dotnet restore
@ -60,5 +61,5 @@ RUN dotnet publish -c Release -o out --no-restore --no-build
# final
FROM base as final
COPY --from=publish /src/FilterLists.Api/out .
COPY --from=publish /app/src/FilterLists.Api/out .
COPY data/. data/

View file

@ -3,27 +3,29 @@
# init base
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as runtime
WORKDIR /app
ENV ASPNETCORE_URLS "http://*:5000"
EXPOSE 5000
ENTRYPOINT ["dotnet", "FilterLists.Web.dll"]
# init build
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
WORKDIR /app
RUN apk add --update nodejs nodejs-npm
# restore
COPY FilterLists.Web.sln ./
WORKDIR /src/FilterLists.Web/
WORKDIR /app/src/FilterLists.Web/
COPY src/FilterLists.Web/FilterLists.Web.csproj ./
WORKDIR /
WORKDIR /app
RUN dotnet restore
# publish
WORKDIR /src/FilterLists.Web/
WORKDIR /app/src/FilterLists.Web/
COPY src/FilterLists.Web/. ./
RUN dotnet publish -c Release -o out --no-restore
# run
FROM runtime as final
COPY --from=build /src/FilterLists.Web/out ./
COPY --from=build /app/src/FilterLists.Web/out ./