Skip to content

Commit d0ab2ef

Browse files
authored
Update solution, Dockerfile, and add scripts (#3)
- Updated `BlazorUnicode.sln` to include `build.ps1`, `readme.md`, and `run.ps1`. - Modified `Dockerfile`: * Updated base image to `mcr.microsoft.com/dotnet/aspnet:9.0-bookworm-slim`. * Simplified build and publish steps. * Changed exposed port to 8080. * Added comments for building and running the Docker container. - Added Docker run instructions to `readme.md`. - Reformatted `BlazorUnicode.csproj` and `BlazorUnicodeServer.csproj` without content changes. - Added `build.ps1` script to build Docker container without cache. - Added `run.ps1` script to run Docker container and open app in default browser.
1 parent 2d2329a commit d0ab2ef

File tree

7 files changed

+80
-60
lines changed

7 files changed

+80
-60
lines changed

BlazorUnicode.sln

+3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorUnicodeServer", "src\
99
EndProject
1010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6F12DF13-D9FD-474D-9BDD-DA9143472ECC}"
1111
ProjectSection(SolutionItems) = preProject
12+
build.ps1 = build.ps1
1213
Dockerfile = Dockerfile
14+
readme.md = readme.md
15+
run.ps1 = run.ps1
1316
EndProjectSection
1417
EndProject
1518
Global

Dockerfile

+10-18
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
1-
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
2-
3-
FROM mcr.microsoft.com/dotnet/aspnet:7.0.3-alpine3.16-amd64 AS base
4-
WORKDIR /app
5-
EXPOSE 80
6-
7-
FROM mcr.microsoft.com/dotnet/sdk:7.0.201-alpine3.16-amd64 AS build
1+
# docker build --tag blazorunicode -f Dockerfile .
2+
# docker run --rm --name blazorunicode -p 8080:8080 blazorunicode
3+
#
4+
FROM mcr.microsoft.com/dotnet/sdk:9.0-bookworm-slim AS build
85
WORKDIR /src
9-
COPY ["src/BlazorUnicodeServer/BlazorUnicodeServer.csproj", "src/BlazorUnicodeServer/"]
10-
COPY ["src/BlazorUnicode/BlazorUnicode.csproj", "src/BlazorUnicode/"]
11-
RUN dotnet restore "src/BlazorUnicodeServer/BlazorUnicodeServer.csproj"
12-
COPY . .
13-
WORKDIR "/src/src/BlazorUnicodeServer"
14-
RUN dotnet build "BlazorUnicodeServer.csproj" -r linux-musl-x64 -c Release -o /app/build
15-
16-
FROM build AS publish
17-
RUN dotnet publish "BlazorUnicodeServer.csproj" -r linux-musl-x64 -c Release -o /app/publish
6+
COPY /src .
7+
WORKDIR "/src/BlazorUnicodeServer"
8+
RUN dotnet publish "BlazorUnicodeServer.csproj" -c Release -o /app/publish
189

19-
FROM base AS final
10+
FROM mcr.microsoft.com/dotnet/aspnet:9.0-bookworm-slim AS final
2011
WORKDIR /app
21-
COPY --from=publish /app/publish .
12+
EXPOSE 8080
13+
COPY --from=build /app/publish .
2214
ENTRYPOINT ["./BlazorUnicodeServer"]

build.ps1

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docker build --no-cache --tag blazorunicode -f Dockerfile .

readme.md

+14
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ Some of the things I find myself doing frequently is:
1010
* Given a page that has a character, just learning more about that (uni)code point.
1111
* Just browsing all the effort put into a font.
1212

13+
### Running locally using docker
14+
15+
1. Build the container using:
16+
17+
```powershell
18+
.\build.ps1
19+
```
20+
21+
2. Run a temporary image using:
22+
23+
```powershell
24+
.\run.ps1
25+
```
26+
1327

1428
Here are some useful links and tools:
1529
* [Microsoft Cascadia Code font](https://github.com/microsoft/cascadia-code)

run.ps1

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Start-Process "docker" -ArgumentList "run --rm --name blazorunicode -p 8080:8080 blazorunicode"
2+
Start-Sleep -Seconds 5
3+
Start-Process "http://localhost:8080"
+31-27
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
2-
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
4-
<Nullable>enable</Nullable>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
7-
<AssemblyName>$(AssemblyName.Replace(' ', '_'))</AssemblyName>
8-
</PropertyGroup>
9-
<PropertyGroup>
10-
<PackageId>$(AssemblyName)</PackageId>
11-
<Product>
12-
</Product>
13-
</PropertyGroup>
14-
<ItemGroup>
15-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.0" />
16-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.0" PrivateAssets="all" />
17-
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
18-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
19-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
20-
<PackageReference Include="System.Net.Http.Json" Version="9.0.0" />
21-
</ItemGroup>
22-
<ItemGroup>
23-
<ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
24-
</ItemGroup>
25-
<ItemGroup>
26-
<Folder Include="Properties\PublishProfiles\" />
27-
<Folder Include="wwwroot\css\fonts\" />
28-
</ItemGroup>
2+
<PropertyGroup>
3+
<TargetFramework>net9.0</TargetFramework>
4+
<Nullable>enable</Nullable>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
7+
<AssemblyName>$(AssemblyName.Replace(' ', '_'))</AssemblyName>
8+
</PropertyGroup>
9+
10+
<PropertyGroup>
11+
<PackageId>$(AssemblyName)</PackageId>
12+
<Product></Product>
13+
</PropertyGroup>
14+
15+
<ItemGroup>
16+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.0" />
17+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.0" PrivateAssets="all" />
18+
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
19+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
20+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
21+
<PackageReference Include="System.Net.Http.Json" Version="9.0.0" />
22+
</ItemGroup>
23+
24+
<ItemGroup>
25+
<ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
26+
</ItemGroup>
27+
28+
<ItemGroup>
29+
<Folder Include="Properties\PublishProfiles\" />
30+
<Folder Include="wwwroot\css\fonts\" />
31+
</ItemGroup>
32+
2933
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
<Project Sdk="Microsoft.NET.Sdk.Web">
2-
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
4-
<Nullable>enable</Nullable>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<UserSecretsId>7bf144f8-f3e8-41b4-a7ee-7e25ce8888b8</UserSecretsId>
7-
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
8-
<DockerfileContext>..\..</DockerfileContext>
9-
</PropertyGroup>
10-
<ItemGroup>
11-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.0" />
12-
</ItemGroup>
13-
<ItemGroup>
14-
<ProjectReference Include="..\BlazorUnicode\BlazorUnicode.csproj" />
15-
</ItemGroup>
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
2+
<PropertyGroup>
3+
<TargetFramework>net9.0</TargetFramework>
4+
<Nullable>enable</Nullable>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<UserSecretsId>7bf144f8-f3e8-41b4-a7ee-7e25ce8888b8</UserSecretsId>
7+
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
8+
<DockerfileContext>..\..</DockerfileContext>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.0" />
13+
</ItemGroup>
14+
15+
<ItemGroup>
16+
<ProjectReference Include="..\BlazorUnicode\BlazorUnicode.csproj" />
17+
</ItemGroup>
18+
1619
</Project>

0 commit comments

Comments
 (0)