diff --git a/.dockerignore b/directory/.dockerignore similarity index 100% rename from .dockerignore rename to directory/.dockerignore diff --git a/directory/src/FilterLists.Directory.Api/Dockerfile b/directory/src/FilterLists.Directory.Api/Dockerfile index 868117610..ef1a5a0ff 100644 --- a/directory/src/FilterLists.Directory.Api/Dockerfile +++ b/directory/src/FilterLists.Directory.Api/Dockerfile @@ -1,22 +1,36 @@ -#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. - -FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine AS base +# init base +FROM mcr.microsoft.com/dotnet/core/runtime-deps:3.1-alpine AS base WORKDIR /app EXPOSE 80 -EXPOSE 443 +ENTRYPOINT ./FilterLists.Directory.Api +# init build FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS build + +# restore WORKDIR /src -COPY ["directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj", "directory/src/FilterLists.Directory.Api/"] -RUN dotnet restore "directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj" -COPY . . -WORKDIR "/src/directory/src/FilterLists.Directory.Api" -RUN dotnet build "FilterLists.Directory.Api.csproj" -c Release -o /app/build +COPY src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj FilterLists.Directory.Domain/ +COPY src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj FilterLists.Directory.Application/ +COPY src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj FilterLists.Directory.Infrastructure.Migrations/ +COPY src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj FilterLists.Directory.Infrastructure/ +WORKDIR /src/FilterLists.Directory.Api +COPY src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj . +RUN dotnet restore +# build +WORKDIR /src +COPY src/FilterLists.Directory.Domain/. FilterLists.Directory.Domain/ +COPY src/FilterLists.Directory.Application/. FilterLists.Directory.Application/ +COPY src/FilterLists.Directory.Infrastructure.Migrations/. FilterLists.Directory.Infrastructure.Migrations/ +COPY src/FilterLists.Directory.Infrastructure/. FilterLists.Directory.Infrastructure/ +WORKDIR /src/FilterLists.Directory.Api +COPY src/FilterLists.Directory.Api/. . +RUN dotnet build --no-restore -c Release + +# publish FROM build AS publish -RUN dotnet publish "FilterLists.Directory.Api.csproj" -c Release -o /app/publish +RUN dotnet publish --no-build -c Release -o /app/publish -r linux-musl-x64 -p:PublishSingleFile=true +# package final FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "FilterLists.Directory.Api.dll"] +COPY --from=publish /app/publish . \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj b/directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj index 30f5ed913..d05aa6276 100644 --- a/directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj +++ b/directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj @@ -6,12 +6,7 @@ enable true true - true - linux-musl-x64 - 9bfe2a36-880e-4da0-994f-a9641e228ba3 - Linux - ..\..\..\docker-compose.dcproj - ..\..\.. + linux-musl-x64;win10-x64 diff --git a/directory/src/FilterLists.Directory.Api/Properties/launchSettings.json b/directory/src/FilterLists.Directory.Api/Properties/launchSettings.json index 39cec19af..c6bd4c5e3 100644 --- a/directory/src/FilterLists.Directory.Api/Properties/launchSettings.json +++ b/directory/src/FilterLists.Directory.Api/Properties/launchSettings.json @@ -5,8 +5,7 @@ "commandName": "Docker", "launchBrowser": true, "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/lists", - "publishAllPorts": true, - "useSSL": true + "publishAllPorts": true } } } \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Api/appsettings.json b/directory/src/FilterLists.Directory.Api/appsettings.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/directory/src/FilterLists.Directory.Api/appsettings.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Api/debug.Dockerfile b/directory/src/FilterLists.Directory.Api/debug.Dockerfile new file mode 100644 index 000000000..478e9a877 --- /dev/null +++ b/directory/src/FilterLists.Directory.Api/debug.Dockerfile @@ -0,0 +1,4 @@ +# init base for Visual Studio debugging +FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine AS base +WORKDIR /app +EXPOSE 80 \ No newline at end of file diff --git a/directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj b/directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj index a21359f89..60035c72f 100644 --- a/directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj +++ b/directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj @@ -19,6 +19,7 @@ + diff --git a/directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj b/directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj index 8f1335b97..3c03bf30f 100644 --- a/directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj +++ b/directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj @@ -18,4 +18,8 @@ + + + + \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 98b0de9ef..bdf1de3a7 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -2,12 +2,10 @@ version: '3.8' services: filterlists.directory.api: + build: + dockerfile: src/FilterLists.Directory.Api/debug.Dockerfile environment: - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=https://+:443;http://+:80 + - ASPNETCORE_URLS=http://+:80 ports: - - "80" - - "443" - volumes: - - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro - - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro \ No newline at end of file + - "80" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9868b2eee..04a4ab7d5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,8 +4,8 @@ services: filterlists.directory.api: image: ${DOCKER_REGISTRY-}filterlistsdirectoryapi build: - context: . - dockerfile: directory/src/FilterLists.Directory.Api/Dockerfile + context: ./directory + dockerfile: src/FilterLists.Directory.Api/Dockerfile depends_on: - filterlists.directory.db environment: