diff --git a/.dockerignore b/.dockerignore
index 1ca1c3da4..5771a184e 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,18 +1,19 @@
+.env
**/.git
-**/.github
.gitattributes
.gitignore
+**/.github
**/.vs
**/.vscode
-**/images
-**/ops
-codecov.yml
.dockerignore
docker-compose.yml
docker-compose.*.yml
-FilterLists.sln
-*.DotSettings*
-LICENSE
+docker-compose.dcproj
**/bin
**/obj
-**/node_modules
\ No newline at end of file
+**/.sln
+**/node_modules
+*.DotSettings*
+LICENSE
+**/images
+**/ops
\ No newline at end of file
diff --git a/FilterLists.sln b/FilterLists.sln
index 37aace757..4bcdb338e 100644
--- a/FilterLists.sln
+++ b/FilterLists.sln
@@ -39,6 +39,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CE4AB25B-550
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{041F9CFA-B6F7-4DEB-9441-829DE697B1BB}"
EndProject
+Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{B94A5BCD-3BE3-4FE4-AE48-ADCF904A22A4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -73,6 +75,10 @@ Global
{DA34DED7-B352-4855-9C7B-9E3D983DBE2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DA34DED7-B352-4855-9C7B-9E3D983DBE2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA34DED7-B352-4855-9C7B-9E3D983DBE2E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B94A5BCD-3BE3-4FE4-AE48-ADCF904A22A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B94A5BCD-3BE3-4FE4-AE48-ADCF904A22A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B94A5BCD-3BE3-4FE4-AE48-ADCF904A22A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B94A5BCD-3BE3-4FE4-AE48-ADCF904A22A4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/codecov.yml b/codecov.yml
deleted file mode 100644
index f6272f5f1..000000000
--- a/codecov.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-coverage:
- status:
- project:
- default:
- enabled: no
- patch:
- default:
- enabled: no
diff --git a/docker-compose.tests.data.yml b/docker-compose.data.tests.yml
similarity index 88%
rename from docker-compose.tests.data.yml
rename to docker-compose.data.tests.yml
index e21a1d610..8910d8e33 100644
--- a/docker-compose.tests.data.yml
+++ b/docker-compose.data.tests.yml
@@ -1,5 +1,3 @@
-# For running data integration tests in FilterLists.Data.Tests
-
version: "3.7"
services:
diff --git a/docker-compose.dcproj b/docker-compose.dcproj
new file mode 100644
index 000000000..565f51e9e
--- /dev/null
+++ b/docker-compose.dcproj
@@ -0,0 +1,17 @@
+
+
+
+ 2.1
+ Linux
+ b94a5bcd-3be3-4fe4-ae48-adcf904a22a4
+ LaunchBrowser
+ {Scheme}://localhost:{ServicePort}
+ filterlists.api
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
index f51c3c989..1b2a3900d 100644
--- a/docker-compose.prod.yml
+++ b/docker-compose.prod.yml
@@ -1,11 +1,9 @@
-# For running pre-build instances of all modules from Hub
-
version: "3.7"
services:
- FilterLists.Api:
+ api:
image: collinbarrett/filterlists.api:latest
- FilterLists.Web:
+ web:
image: collinbarrett/filterlists.web:latest
diff --git a/docker-compose.yml b/docker-compose.yml
index 604f69574..551179741 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,3 @@
-# For building and running all modules
-
version: "3.7"
services:
diff --git a/src/FilterLists.Api/Dockerfile b/src/FilterLists.Api/Dockerfile
index 35c59d55b..b769b62bc 100644
--- a/src/FilterLists.Api/Dockerfile
+++ b/src/FilterLists.Api/Dockerfile
@@ -1,56 +1,64 @@
# Context: .
# Command: docker build -f src/FilterLists.Api/Dockerfile .
-# prep runtime
-FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as runtime
-ENTRYPOINT ["dotnet", "FilterLists.Api.dll"]
+# init base
+FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine as base
ENV DataDirectory__Path "data"
ENV ASPNETCORE_URLS "http://*:5000"
EXPOSE 5000
+ENTRYPOINT ["dotnet", "FilterLists.Api.dll"]
# init build
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
# restore
-WORKDIR /src/
-COPY src/FilterLists.Data/FilterLists.Data.csproj ./FilterLists.Data/
-COPY src/FilterLists.Services/FilterLists.Services.csproj ./FilterLists.Services/
-WORKDIR /src/FilterLists.Api/
-COPY src/FilterLists.Api/FilterLists.Api.csproj ./
+WORKDIR /src
+COPY src/FilterLists.Data/FilterLists.Data.csproj FilterLists.Data/
+COPY src/FilterLists.Services/FilterLists.Services.csproj FilterLists.Services/
+WORKDIR /src/FilterLists.Api
+COPY src/FilterLists.Api/FilterLists.Api.csproj .
RUN dotnet restore
# build
-WORKDIR /src/
-COPY src/FilterLists.Data/. ./FilterLists.Data/
-COPY src/FilterLists.Services/. ./FilterLists.Services/
-WORKDIR /src/FilterLists.Api/
-COPY src/FilterLists.Api/. ./
+WORKDIR /src
+COPY src/FilterLists.Data/. FilterLists.Data/
+COPY src/FilterLists.Services/. FilterLists.Services/
+WORKDIR /src/FilterLists.Api
+COPY src/FilterLists.Api/. .
RUN dotnet build -c Release --no-restore
-# build data tests
+# init Data.Tests
FROM build AS test-data
-WORKDIR /tests/FilterLists.Data.Tests/
-COPY tests/FilterLists.Data.Tests/FilterLists.Data.Tests.csproj ./
-RUN dotnet restore
-COPY tests/FilterLists.Data.Tests/. ./
-RUN dotnet build -c Release --no-restore
-COPY data/. ./data/
ENTRYPOINT ["dotnet", "test"]
-# build services tests
-FROM build AS test-services
-WORKDIR /tests/FilterLists.Services.Tests/
-COPY tests/FilterLists.Services.Tests/FilterLists.Services.Tests.csproj ./
+# restore Data.Tests
+WORKDIR /tests/FilterLists.Data.Tests
+COPY tests/FilterLists.Data.Tests/FilterLists.Data.Tests.csproj .
RUN dotnet restore
-COPY tests/FilterLists.Services.Tests/. ./
+
+# build Data.Tests
+COPY tests/FilterLists.Data.Tests/. .
RUN dotnet build -c Release --no-restore
+COPY data/. data/
+
+# init Services.Tests
+FROM build AS test-services
ENTRYPOINT ["dotnet", "test"]
+# restore Services.Tests
+WORKDIR /tests/FilterLists.Services.Tests
+COPY tests/FilterLists.Services.Tests/FilterLists.Services.Tests.csproj .
+RUN dotnet restore
+
+# build Services.Tests
+COPY tests/FilterLists.Services.Tests/. .
+RUN dotnet build -c Release --no-restore
+
# publish
FROM build AS publish
RUN dotnet publish -c Release -o out --no-restore --no-build
-# run
-FROM runtime as final
-COPY --from=publish /src/FilterLists.Api/out ./
-COPY data/. ./data/
+# final
+FROM base as final
+COPY --from=publish /src/FilterLists.Api/out .
+COPY data/. data/
diff --git a/src/FilterLists.Api/FilterLists.Api.csproj b/src/FilterLists.Api/FilterLists.Api.csproj
index 1aab8c80b..193b6d430 100644
--- a/src/FilterLists.Api/FilterLists.Api.csproj
+++ b/src/FilterLists.Api/FilterLists.Api.csproj
@@ -18,6 +18,7 @@
https://github.com/collinbarrett/FilterLists
false
Exe
+ ..\..\docker-compose.dcproj