refactor(directory): ♻ extract separate migrate dockerfile for perf

This commit is contained in:
Collin M. Barrett 2020-09-07 17:30:51 -05:00
parent 98ff6d9f8e
commit ece877e567
3 changed files with 27 additions and 15 deletions

View file

@ -4,10 +4,10 @@ services:
directory-migrations-tests:
build:
context: ./services
dockerfile: directory/src/FilterLists.Directory.Api/Dockerfile
dockerfile: directory/src/FilterLists.Directory.Api/Dockerfile.migrate
target: test-migrations
volumes:
- directory-migrations-tests-results:/app/tests/FilterLists.Infrastructure.Migrations.Tests/TestResults
- directory-migrations-tests-results:/app/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/TestResults
depends_on:
- directory-db

View file

@ -26,19 +26,6 @@ WORKDIR /src/FilterLists.Directory.Api
COPY directory/src/FilterLists.Directory.Api/. .
RUN dotnet publish -c Release --no-restore -o /app/publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true -r linux-musl-x64
# init Infrastructure.Migrations.Tests
FROM build AS test-migrations
ENTRYPOINT ["dotnet", "test", "--logger:trx"]
# restore Infrastructure.Migrations.Tests
WORKDIR /tests/FilterLists.Directory.Infrastructure.Migrations.Tests
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/FilterLists.Directory.Infrastructure.Migrations.Tests.csproj .
RUN dotnet restore
# build Infrastructure.Migrations.Tests
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/. .
RUN dotnet build -c Release --no-restore -r linux-musl-x64
# package final
FROM base AS final
COPY --from=build /app/publish .

View file

@ -0,0 +1,25 @@
# init test-migrations
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS test-migrations
ENTRYPOINT ["dotnet", "test", "--logger:trx"]
# restore
WORKDIR /src
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj FilterLists.Directory.Domain/
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj FilterLists.Directory.Infrastructure/
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj FilterLists.Directory.Infrastructure.Migrations/
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj FilterLists.Directory.Application/
COPY directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj FilterLists.Directory.Api/
WORKDIR /tests/FilterLists.Directory.Infrastructure.Migrations.Tests
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/FilterLists.Directory.Infrastructure.Migrations.Tests.csproj .
RUN dotnet restore
# build
WORKDIR /src
COPY directory/src/FilterLists.Directory.Domain/. FilterLists.Directory.Domain/
COPY directory/src/FilterLists.Directory.Infrastructure/. FilterLists.Directory.Infrastructure/
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. FilterLists.Directory.Infrastructure.Migrations/
COPY directory/src/FilterLists.Directory.Application/. FilterLists.Directory.Application/
COPY directory/src/FilterLists.Directory.Api/. FilterLists.Directory.Api/
WORKDIR /tests/FilterLists.Directory.Infrastructure.Migrations.Tests
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/. .
RUN dotnet build -c Release --no-restore -r linux-musl-x64