From 4d2f3aabcea465105ca9a69e04b311433b57c718 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sun, 20 Jan 2019 17:43:17 -0600 Subject: [PATCH] wire up nginx as reverse proxy, optimize Api dockerfile, etc. --- docker-compose.yml | 36 +++++++++++++--------------- ops/nginx/Dockerfile | 2 +- ops/nginx/nginx.conf | 2 +- src/FilterLists.Api/Dockerfile | 23 ++++++++++++------ src/FilterLists.Api/Program.cs | 1 - src/FilterLists.Api/appsettings.json | 2 +- 6 files changed, 35 insertions(+), 31 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 07bd19b8a..4191787ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,37 +1,33 @@ version: '3.7' services: - filterlists.mariadb: + FilterLists.MariaDB: image: mariadb:latest - restart: always environment: MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_DATABASE: filterlistsdata MYSQL_USER: filterlists MYSQL_PASSWORD: C53A28194242D82288E1E84A37E56D3EC7DFF83F1D9E018AF19E9BA27A5DF833 - filterlists.api: - image: '${DOCKER_REGISTRY-}filterlistsapi' + command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_520_ci'] + FilterLists.Api: + image: 'filterlists.api' build: context: . - dockerfile: ./src/FilterLists.Api/Dockerfile + dockerfile: src/FilterLists.Api/Dockerfile expose: - - '5000' + - "80/tcp" depends_on: - - filterlists.mariadb - filterlists.web: - image: '${DOCKER_REGISTRY-}filterlistsweb' - build: - context: ./src - dockerfile: ./FilterLists.Web/Dockerfile - expose: - - '5001' - depends_on: - - filterlists.api - filterlists.nginx: + - FilterLists.MariaDB +# FilterLists.Web: +# image: 'filterlists.web' +# build: +# context: src/FilterLists.Web + FilterLists.NGINX: + image: 'nginx:stable-alpine' build: context: ./ops/nginx ports: - '80:80' - '443:443' - depends_on: - - filterlists.api - - filterlists.web \ No newline at end of file + links: + - FilterLists.Api +# - FilterLists.Web \ No newline at end of file diff --git a/ops/nginx/Dockerfile b/ops/nginx/Dockerfile index 865767879..fbf884847 100644 --- a/ops/nginx/Dockerfile +++ b/ops/nginx/Dockerfile @@ -1,2 +1,2 @@ -FROM nginx:mainline-alpine +FROM nginx:stable-alpine COPY nginx.conf /etc/nginx/nginx.conf \ No newline at end of file diff --git a/ops/nginx/nginx.conf b/ops/nginx/nginx.conf index 151e90a4c..3adbea35b 100644 --- a/ops/nginx/nginx.conf +++ b/ops/nginx/nginx.conf @@ -6,7 +6,7 @@ http { sendfile on; upstream app_servers { - server filterlists.web:5001; + server FilterLists.Api:80; } server { diff --git a/src/FilterLists.Api/Dockerfile b/src/FilterLists.Api/Dockerfile index 097fdf9bd..8e88a6609 100644 --- a/src/FilterLists.Api/Dockerfile +++ b/src/FilterLists.Api/Dockerfile @@ -1,12 +1,21 @@ FROM microsoft/dotnet:2.2-sdk-alpine AS publish -COPY src/FilterLists.Api /FilterLists.Api -COPY src/FilterLists.Data /FilterLists.Data -COPY src/FilterLists.Services /FilterLists.Services -RUN dotnet publish FilterLists.Api/FilterLists.Api.csproj -c Release -o /out +WORKDIR /app +COPY src/FilterLists.Data/FilterLists.Data.csproj ./FilterLists.Data/ +COPY src/FilterLists.Services/FilterLists.Services.csproj ./FilterLists.Services/ +COPY src/FilterLists.Api/FilterLists.Api.csproj ./FilterLists.Api/ +WORKDIR /app/FilterLists.Api +RUN dotnet restore + +WORKDIR /app +COPY src/FilterLists.Data/. ./FilterLists.Data/ +COPY src/FilterLists.Services/. ./FilterLists.Services/ +COPY src/FilterLists.Api/. ./FilterLists.Api/ +WORKDIR /app/FilterLists.Api +RUN dotnet publish -c Release -o /out FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine +WORKDIR /app COPY --from=publish /out . -COPY data /data -ENV ASPNETCORE_URLS http://+:5000 -EXPOSE 5000 +COPY data ./data/ +ENV ASPNETCORE_URLS http://+:80 ENTRYPOINT ["dotnet", "FilterLists.Api.dll"] \ No newline at end of file diff --git a/src/FilterLists.Api/Program.cs b/src/FilterLists.Api/Program.cs index 57fa7f2b1..c293ba200 100644 --- a/src/FilterLists.Api/Program.cs +++ b/src/FilterLists.Api/Program.cs @@ -24,7 +24,6 @@ public static void Main(string[] args) private static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) - .UseUrls("http://localhost:5000") .UseApplicationInsights() .UseStartup(); } diff --git a/src/FilterLists.Api/appsettings.json b/src/FilterLists.Api/appsettings.json index 10fd560b9..0e5529e9b 100644 --- a/src/FilterLists.Api/appsettings.json +++ b/src/FilterLists.Api/appsettings.json @@ -9,7 +9,7 @@ "InstrumentationKey": "" }, "ConnectionStrings": { - "FilterListsConnection": "Server=filterlists.db;Database=filterlistsdata;Uid=filterlists;Pwd=C53A28194242D82288E1E84A37E56D3EC7DFF83F1D9E018AF19E9BA27A5DF833;" + "FilterListsConnection": "Server=FilterLists.MariaDB;Database=filterlistsdata;Uid=filterlists;Pwd=C53A28194242D82288E1E84A37E56D3EC7DFF83F1D9E018AF19E9BA27A5DF833;" }, "DataDirectory": { "Path": "data"