use self-contained deployment and standardize csproj across all projects

This commit is contained in:
Collin M. Barrett 2019-07-16 12:48:24 -05:00
parent 4290f919d6
commit 45ba70631f
10 changed files with 100 additions and 68 deletions

View file

@ -7,9 +7,9 @@
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<RuntimeIdentifier>linux-musl-x64</RuntimeIdentifier>
<ServerGarbageCollection>false</ServerGarbageCollection>
<DockerDebuggeeArguments>--additionalProbingPath /root/.nuget/fallbackpackages2 --additionalProbingPath /root/.nuget/fallbackpackages "bin/$(Configuration)/$(TargetFramework)/$(AssemblyName).dll" -a -v</DockerDebuggeeArguments>
<DockerDebuggeeProgram>/usr/bin/dotnet</DockerDebuggeeProgram>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<PropertyGroup>

View file

@ -2,9 +2,9 @@
# Command: docker build -f src/FilterLists.Api/Dockerfile .
# init base
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as base
FROM mcr.microsoft.com/dotnet/core/runtime-deps:2.2-alpine as base
EXPOSE 80
ENTRYPOINT ["dotnet", "FilterLists.Api.dll"]
ENTRYPOINT ["./FilterLists.Api"]
COPY data/. data/
WORKDIR /app
@ -25,7 +25,7 @@ COPY src/FilterLists.Data/. FilterLists.Data/
COPY src/FilterLists.Services/. FilterLists.Services/
WORKDIR /app/src/FilterLists.Api
COPY src/FilterLists.Api/. .
RUN dotnet build -c Release --no-restore
RUN dotnet build -c Release -r linux-musl-x64 --no-restore
# init Data.Tests
FROM build AS test-data
@ -56,7 +56,7 @@ RUN dotnet build -c Release --no-restore
# publish
FROM build AS publish
RUN dotnet publish -c Release -o out --no-restore --no-build
RUN dotnet publish -c Release -r linux-musl-x64 -o out --no-restore --no-build
# final
FROM base as final

View file

@ -1,25 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
<ApplicationInsightsResourceId>/subscriptions/4bcbdfe1-6c65-4c02-820f-7c0e7ec5614f/resourcegroups/FilterLists/providers/microsoft.insights/components/FilterLists</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>/subscriptions/4bcbdfe1-6c65-4c02-820f-7c0e7ec5614f/resourcegroups/FilterLists/providers/microsoft.insights/components/FilterLists</ApplicationInsightsAnnotationResourceId>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<RuntimeIdentifier>linux-musl-x64</RuntimeIdentifier>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<ServerGarbageCollection>false</ServerGarbageCollection>
<OutputType>Exe</OutputType>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -30,11 +29,19 @@
<CodeAnalysisRuleSet>FilterLists.Api.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\Extensions\" />
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Services\FilterLists.Services.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Humanizer.Core" Version="2.6.2" />
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
@ -45,8 +52,4 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.7.11" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Services\FilterLists.Services.csproj" />
</ItemGroup>
</Project>

View file

@ -1,21 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LangVersion>latest</LangVersion>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<ServerGarbageCollection>false</ServerGarbageCollection>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />

View file

@ -1,21 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LangVersion>latest</LangVersion>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<ServerGarbageCollection>false</ServerGarbageCollection>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Data\FilterLists.Data.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="8.1.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="6.1.0" />
@ -26,8 +37,4 @@
<PackageReference Include="SharpCompress" Version="0.23.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Data\FilterLists.Data.csproj" />
</ItemGroup>
</Project>

View file

@ -2,10 +2,10 @@
# Command: docker build -f src/FilterLists.Web/Dockerfile .
# init base
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as runtime
WORKDIR /app
FROM mcr.microsoft.com/dotnet/core/runtime-deps:2.2-alpine as base
EXPOSE 80
ENTRYPOINT ["dotnet", "FilterLists.Web.dll"]
ENTRYPOINT ["./FilterLists.Web"]
WORKDIR /app
# init build
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
@ -22,8 +22,8 @@ RUN dotnet restore
# publish
WORKDIR /app/src/FilterLists.Web/
COPY src/FilterLists.Web/. ./
RUN dotnet publish -c Release -o out --no-restore
RUN dotnet publish -c Release -r linux-musl-x64 -o out --no-restore
# run
FROM runtime as final
FROM base as final
COPY --from=build /app/src/FilterLists.Web/out ./

View file

@ -1,27 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<RuntimeIdentifier>linux-musl-x64</RuntimeIdentifier>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
<IsPackable>false</IsPackable>
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
<ServerGarbageCollection>false</ServerGarbageCollection>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
<PackageReference Include="Microsoft.AspNetCore.App" />
@ -47,7 +52,8 @@
<Exec Command="node --version" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
</Exec>
<Error Condition="'$(ErrorCode)' != '0'" Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
<Error Condition="'$(ErrorCode)' != '0'"
Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
<Message Importance="high" Text="Performing Webpack build..." />
<Exec Command="npm install" />
<Exec Command="node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js" />

View file

@ -1,20 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -25,6 +28,10 @@
<CodeAnalysisRuleSet>FilterLists.Agent.Tests.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\FilterLists.Agent\FilterLists.Agent.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
<PackageReference Include="Microsoft.DotNet.Analyzers.Compatibility" Version="0.2.12-alpha">
@ -43,8 +50,4 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\FilterLists.Agent\FilterLists.Agent.csproj" />
</ItemGroup>
</Project>
</Project>

View file

@ -1,19 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LangVersion>latest</LangVersion>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -46,4 +49,4 @@
<ProjectReference Include="..\..\src\FilterLists.Data\FilterLists.Data.csproj" />
</ItemGroup>
</Project>
</Project>

View file

@ -1,19 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<LangVersion>latest</LangVersion>
<TargetFramework>netcoreapp2.2</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<Authors>Collin M. Barrett</Authors>
<Company>Collin M. Barrett</Company>
<Product>FilterLists</Product>
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
<Copyright>Copyright (c) 2019 Collin M. Barrett</Copyright>
<PackageLicenseUrl>https://github.com/collinbarrett/FilterLists/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
<PackageIconUrl>https://github.com/collinbarrett/FilterLists/raw/master/imgs/icon_filterlists.png</PackageIconUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://filterlists.com/</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -24,6 +27,10 @@
<CodeAnalysisRuleSet>FilterLists.Services.Tests.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\FilterLists.Services\FilterLists.Services.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
<PackageReference Include="Microsoft.DotNet.Analyzers.Compatibility" Version="0.2.12-alpha">
@ -38,8 +45,4 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\FilterLists.Services\FilterLists.Services.csproj" />
</ItemGroup>
</Project>
</Project>