revert some things
This commit is contained in:
@@ -4,6 +4,6 @@
|
|||||||
.gitignore
|
.gitignore
|
||||||
.vs
|
.vs
|
||||||
.vscode
|
.vscode
|
||||||
*/bin
|
**/bin
|
||||||
*/obj
|
**/obj
|
||||||
**/.toolstarget
|
**/.toolstarget
|
||||||
37
Dockerfile
37
Dockerfile
@@ -1,17 +1,26 @@
|
|||||||
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
|
# https://hub.docker.com/_/microsoft-dotnet
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
|
||||||
|
WORKDIR /source
|
||||||
|
|
||||||
|
# copy csproj and restore as distinct layers
|
||||||
|
COPY ./src/TerribleDev.Blog.Web/*.csproj .
|
||||||
|
RUN dotnet restore -r linux-musl-x64 /p:PublishReadyToRunComposite=true
|
||||||
|
|
||||||
|
# copy everything else and build app
|
||||||
|
COPY ./src/TerribleDev.Blog.Web/ .
|
||||||
|
RUN dotnet publish -c release -o /app -r linux-musl-x64 --self-contained true --no-restore /p:PublishTrimmed=true /p:PublishReadyToRunComposite=true /p:PublishSingleFile=true
|
||||||
|
RUN date +%s > /app/buildtime.txt
|
||||||
|
# final stage/image
|
||||||
|
FROM mcr.microsoft.com/dotnet/runtime-deps:6.0-alpine-amd64
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
COPY --from=build /app ./
|
||||||
|
|
||||||
# Copy csproj and restore as distinct layers
|
# See: https://github.com/dotnet/announcements/issues/20
|
||||||
COPY *.sln .
|
# Uncomment to enable globalization APIs (or delete)
|
||||||
COPY . .
|
# ENV \
|
||||||
RUN dotnet restore
|
# DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
|
||||||
|
# LC_ALL=en_US.UTF-8 \
|
||||||
|
# LANG=en_US.UTF-8
|
||||||
|
# RUN apk add --no-cache icu-libs
|
||||||
|
|
||||||
# Copy everything else and build
|
ENTRYPOINT ["./TerribleDev.Blog.Web"]
|
||||||
COPY . .
|
|
||||||
RUN dotnet publish -c Release -o out
|
|
||||||
|
|
||||||
# Build runtime image
|
|
||||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0
|
|
||||||
WORKDIR /app
|
|
||||||
COPY --from=build-env /app/out .
|
|
||||||
ENTRYPOINT ["dotnet", "TerribleDev.Blog.Web.dll"]
|
|
||||||
12
Dockerfile.old
Normal file
12
Dockerfile.old
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy everything else and build
|
||||||
|
COPY /src/TerribleDev.Blog.Web .
|
||||||
|
RUN dotnet publish -c release -o /out -r linux-musl-x64 --self-contained true /p:PublishTrimmed=true /p:PublishReadyToRunComposite=true /p:PublishSingleFile=true
|
||||||
|
RUN date +%s > /out/buildtime.txt
|
||||||
|
# Build runtime image
|
||||||
|
FROM mcr.microsoft.com/dotnet/runtime-deps:6.0-alpine-amd64
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=build /app/out .
|
||||||
|
ENTRYPOINT ["./TerribleDev.Blog.Web"]
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@@ -9,7 +11,26 @@ namespace TerribleDev.Blog.Web.Filters
|
|||||||
{
|
{
|
||||||
public class StaticETag: ActionFilterAttribute
|
public class StaticETag: ActionFilterAttribute
|
||||||
{
|
{
|
||||||
public static string staticEtag = "\"" + MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString())).ToHexString().Substring(0,8) + "\"";
|
static StaticETag()
|
||||||
|
{
|
||||||
|
string etagString;
|
||||||
|
if(File.Exists("buildtime.txt"))
|
||||||
|
{
|
||||||
|
Console.WriteLine("buildtime.txt found");
|
||||||
|
etagString = File.ReadAllText("buildtime.txt");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("buildtime.txt not found");
|
||||||
|
Console.WriteLine("Directory list");
|
||||||
|
Console.WriteLine(Directory.GetFiles(".", "*", SearchOption.AllDirectories).Aggregate((a, b) => a + "\n" + b));
|
||||||
|
var unixTime = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString();
|
||||||
|
Console.WriteLine("Using Unix Time for Etag: " + unixTime);
|
||||||
|
etagString = unixTime;
|
||||||
|
}
|
||||||
|
StaticETag.staticEtag = "\"" + MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(etagString)).ToHexString().Substring(0,8) + "\"";
|
||||||
|
}
|
||||||
|
public static string staticEtag;
|
||||||
public static ConcurrentDictionary<string, string> cache = new ConcurrentDictionary<string, string>();
|
public static ConcurrentDictionary<string, string> cache = new ConcurrentDictionary<string, string>();
|
||||||
public override void OnActionExecuted(ActionExecutedContext context)
|
public override void OnActionExecuted(ActionExecutedContext context)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ namespace TerribleDev.Blog.Web
|
|||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("ETag Detected As: " + StaticETag.staticEtag);
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
{
|
{
|
||||||
app.UseDeveloperExceptionPage();
|
app.UseDeveloperExceptionPage();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
|
<RuntimeIdentifiers>linux-musl-x64</RuntimeIdentifiers>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -42,7 +42,8 @@
|
|||||||
<a class="skip-main" href="#main">Skip to main content</a>
|
<a class="skip-main" href="#main">Skip to main content</a>
|
||||||
<div class="rootbox">
|
<div class="rootbox">
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<svg aria-label="Open Menu" id="menuBtn" role="button" xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M4 10h24c1.104 0 2-.896 2-2s-.896-2-2-2H4c-1.104 0-2 .896-2 2s.896 2 2 2zm24 4H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2zm0 8H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2z" /></svg>
|
@* <svg aria-label="Open Menu" id="menuBtn" role="button" xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M4 10h24c1.104 0 2-.896 2-2s-.896-2-2-2H4c-1.104 0-2 .896-2 2s.896 2 2 2zm24 4H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2zm0 8H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2z" /></svg> *@
|
||||||
|
<svg aria-label="Open Menu" id="menuBtn" role="button" xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M4 10h24c1.104 0 2-.896 2-2s-.896-2-2-2H4c-1.104 0-2 .896-2 2s.896 2 2 2zm24 4H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2zm0 8H4c-1.104 0-2 .896-2 2s.896 2 2 2h24c1.104 0 2-.896 2-2s-.896-2-2-2z"/></svg>
|
||||||
<div class="headerCallout"><a href="/" class="link-unstyled ">@config.Title</a></div>
|
<div class="headerCallout"><a href="/" class="link-unstyled ">@config.Title</a></div>
|
||||||
</header>
|
</header>
|
||||||
<partial name="Nav" />
|
<partial name="Nav" />
|
||||||
|
|||||||
13
src/TerribleDev.Blog.Web/wwwroot/css/dark.old.css
Normal file
13
src/TerribleDev.Blog.Web/wwwroot/css/dark.old.css
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--headline: #f0f0f0;
|
||||||
|
--body-text-color: #ffffff;
|
||||||
|
--block-quote-left-border: #d1dced;
|
||||||
|
--code-block-background-color: #4a4a4a;
|
||||||
|
--primary-background: #323131;
|
||||||
|
--link-color: #3faff9;
|
||||||
|
/* --link-visited: #d8dbde; */
|
||||||
|
--border-color: #bdcad2;
|
||||||
|
--horizontal-rule: #626468;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,20 +13,6 @@
|
|||||||
--nav-bar-text-color: var(--primary-background);
|
--nav-bar-text-color: var(--primary-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
--headline: #f0f0f0;
|
|
||||||
--body-text-color: #ffffff;
|
|
||||||
--block-quote-left-border: #d1dced;
|
|
||||||
--code-block-background-color: #4a4a4a;
|
|
||||||
--primary-background: #323131;
|
|
||||||
--link-color: #3faff9;
|
|
||||||
/* --link-visited: #d8dbde; */
|
|
||||||
--border-color: #bdcad2;
|
|
||||||
--horizontal-rule: #626468;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user