diff --git a/.dockerignore b/.dockerignore index b8ee7703b..7443667bf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -14,3 +14,4 @@ docker-compose.*.yml LICENSE **/bin **/obj +**/node_modules \ No newline at end of file diff --git a/FilterLists.Web.sln b/FilterLists.Web.sln new file mode 100644 index 000000000..9a2220756 --- /dev/null +++ b/FilterLists.Web.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.202 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6F70E166-BB98-41BE-A137-CB8C7E559174}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Web", "src\FilterLists.Web\FilterLists.Web.csproj", "{FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {FD17DF1D-4D60-454F-8FC7-73DF1B51E9B3} = {6F70E166-BB98-41BE-A137-CB8C7E559174} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {925C18D5-4B82-4EA2-B45F-FD7D8F01A80F} + EndGlobalSection +EndGlobal diff --git a/docker-compose.yml b/docker-compose.yml index 37d25a815..0b10a1ab5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,6 +11,17 @@ services: volumes: - ./ops/nginx/conf.d:/etc/nginx/conf.d:ro + filterlists-web: + image: collinbarrett/filterlists.web + restart: always + build: + context: . + dockerfile: src/FilterLists.Web/Dockerfile + networks: + - reverse-proxy + depends_on: + - filterlists-api + filterlists-api: image: collinbarrett/filterlists.api restart: always diff --git a/src/FilterLists.Web/Dockerfile b/src/FilterLists.Web/Dockerfile index 98cd784fc..ad47a408e 100644 --- a/src/FilterLists.Web/Dockerfile +++ b/src/FilterLists.Web/Dockerfile @@ -1,18 +1,28 @@ -FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine as base -WORKDIR /app +# Context: . +# Command: docker build -f src/FilterLists.Web/Dockerfile . -FROM microsoft/dotnet:2.2-sdk-alpine AS publish -RUN apk add --update nodejs-npm +# prep runtime +FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as runtime +ENTRYPOINT ["dotnet", "FilterLists.Web.dll"] +ENV ASPNETCORE_URLS "http://*:5000" +EXPOSE 5000 -WORKDIR /app -COPY FilterLists.Web.csproj . +# init build +FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build +RUN apk add --update nodejs nodejs-npm + +# restore +COPY FilterLists.Web.sln ./ +WORKDIR /src/FilterLists.Web/ +COPY src/FilterLists.Web/FilterLists.Web.csproj ./ +WORKDIR / RUN dotnet restore -COPY . . -RUN dotnet publish -c Release -o /out +# publish +WORKDIR /src/FilterLists.Web/ +COPY src/FilterLists.Web/. ./ +RUN dotnet publish -c Release -o out --no-restore -FROM base -WORKDIR /app -COPY --from=publish /out . -ENV ASPNETCORE_URLS http://+:80 -ENTRYPOINT ["dotnet", "FilterLists.Web.dll"] \ No newline at end of file +# run +FROM runtime +COPY --from=build /src/FilterLists.Web/out ./