Added docker-compose. Updated startups for API and Web layer.
This commit is contained in:
8
JSMR.UI.Blazor/Dockerfile
Normal file
8
JSMR.UI.Blazor/Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN dotnet publish -c Release -o out
|
||||
|
||||
FROM nginx:alpine
|
||||
COPY --from=build /app/out/wwwroot /usr/share/nginx/html
|
||||
COPY JSMR.UI.Blazor/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
@@ -10,9 +10,14 @@ var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
builder.RootComponents.Add<App>("#app");
|
||||
builder.RootComponents.Add<HeadOutlet>("head::after");
|
||||
|
||||
string apiBase = builder.Configuration["ApiBaseUrl"] ?? builder.HostEnvironment.BaseAddress;
|
||||
//string apiBase = builder.Configuration["ApiBaseUrl"] ?? builder.HostEnvironment.BaseAddress;
|
||||
//Console.WriteLine(apiBase);
|
||||
|
||||
Console.WriteLine(apiBase);
|
||||
// If ApiBaseUrl is set (VS dev), use it. Otherwise (docker/prod), use same-origin.
|
||||
var apiBase = builder.Configuration["ApiBaseUrl"];
|
||||
|
||||
if (string.IsNullOrWhiteSpace(apiBase))
|
||||
apiBase = builder.HostEnvironment.BaseAddress;
|
||||
|
||||
// Old way
|
||||
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(apiBase) });
|
||||
|
||||
32
JSMR.UI.Blazor/nginx.conf
Normal file
32
JSMR.UI.Blazor/nginx.conf
Normal file
@@ -0,0 +1,32 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
# Blazor WASM: serve static files, and fallback to index.html for client-side routes
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# Proxy API calls to the api service (docker-compose DNS name: api)
|
||||
location /api/ {
|
||||
proxy_pass http://api:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
# Proxy auth endpoints too (yours are /auth/login, /auth/logout)
|
||||
location /auth/ {
|
||||
proxy_pass http://api:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
3
JSMR.UI.Blazor/wwwroot/appsettings.Development.json
Normal file
3
JSMR.UI.Blazor/wwwroot/appsettings.Development.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"ApiBaseUrl": "https://localhost:7277"
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"ApiBaseUrl": "https://localhost:7277"
|
||||
"ApiBaseUrl": ""
|
||||
}
|
||||
Reference in New Issue
Block a user