chore: setup initial docker development

This commit is contained in:
Stevan Freeborn
2024-04-03 12:02:00 -05:00
parent dd092738aa
commit 6e090f9b4b
15 changed files with 122 additions and 61 deletions
+11 -2
View File
@@ -4,6 +4,15 @@ root = true
[*]
indent_style = space
# Razor files
[*.razor]
indent_size = 2
indent_style = space
[*.css]
indent_size = 2
indent_style = space
# Xml files
[*.xml]
indent_size = 2
@@ -14,8 +23,8 @@ indent_size = 2
#### Core EditorConfig Options ####
# Indentation and spacing
indent_size = 4
tab_width = 4
indent_size = 2
tab_width = 2
# New line preferences
end_of_line = crlf
+1 -1
View File
@@ -7,7 +7,7 @@
appsettings*.json
# dotenv files
.env
.env*
# User-specific files
*.rsuser
+7
View File
@@ -0,0 +1,7 @@
{
"cSpell.words": [
"Antiforgery",
"blazor",
"Hsts"
]
}
+19
View File
@@ -0,0 +1,19 @@
version: '3.8'
name: blog-development
services:
blog:
container_name: blog.stevanfreeborn.com-development
build:
target: development-stage
context: ./src/Blog/
dockerfile: Dockerfile
volumes:
- ./src/Blog:/app
- '~/.aspnet/https:/root/.aspnet/https'
ports:
- '4500:4500'
- '4501:4501'
- '1234:5555'
restart: unless-stopped
env_file:
- ./src/Blog/.env.development
+15
View File
@@ -0,0 +1,15 @@
!.env.vault
**/.dockerignore
**/.env
**/.project
**/.settings
**/.vs
**/.vscode
**/*.*proj.user
**/logs
**/bin
**/Dockerfile*
**/obj
.env*
.flaskenv*
!.env.project
+2 -1
View File
@@ -1,9 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>16b1dba7-29d0-466e-bd34-16d8018898eb</UserSecretsId>
</PropertyGroup>
<ItemGroup>
+19
View File
@@ -0,0 +1,19 @@
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS setup-stage
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . .
FROM setup-stage as development-stage
RUN apt-get update
RUN apt-get install -y unzip
RUN curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
CMD ["dotnet", "watch"]
FROM setup-stage as build-stage
RUN dotnet publish -c Release -o dist
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS production-stage
WORKDIR /app
COPY --from=build-stage /app/dist ./
ENTRYPOINT ["dotnet", "Blog.dll"]
+5 -6
View File
@@ -2,17 +2,15 @@ using Blog.Components;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents()
builder.Services
.AddRazorComponents()
.AddInteractiveServerComponents();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
if (app.Environment.IsProduction())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
@@ -21,7 +19,8 @@ app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.MapRazorComponents<App>()
app
.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.Run();
+2 -4
View File
@@ -12,8 +12,7 @@
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5288",
"applicationUrl": "http://0.0.0.0:4501",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
@@ -21,8 +20,7 @@
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7268;http://localhost:5288",
"applicationUrl": "https://0.0.0.0:9000;http://0.0.0.0:4501",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
+4
View File
@@ -1,3 +1,7 @@
h1:focus {
outline: none;
}
.blazor-error-boundary {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
padding: 1rem 1rem 1rem 3.7rem;
-10
View File
@@ -1,10 +0,0 @@
namespace Blog.Tests;
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}