Запуск Blazor WebAssembly в Docker
MAUI и Blazor | создано: 19.10.2020 | опубликовано: 19.10.2020 | обновлено: 13.01.2024 | просмотров: 5018
Запускаем в docker приложение написаннное на Blazor (WebAssembly)
Шаги по реализации
1. Создаем приложение (если у вас его еще нет) на Blazor (WebAssembly)
Предположим оно у вас уже есть, и создавать его реально не будем. :) В крайнем случае создайте приложение из шаблона Visual Studio. На примере я буду показывать именно такое приложение, которое создается по умолчанию в Visual Studio.
2. Создаем в корне приложение nginx.conf
events { }
http {
include mime.types;
types {
application/wasm wasm;
}
server {
listen 80;
index index.html;
location / {
root /var/www/web;
try_files $uri $uri/ /index.html =404;
}
}
}
3. Создаем файл конфигурации Dockerfile, там же в корне приложения
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env WORKDIR /app COPY . ./ RUN dotnet publish -c Release -o output FROM nginx:alpine WORKDIR /var/www/web COPY --from=build-env /app/output/wwwroot . COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80
4. Создаем файл docker-compose.yaml и снова в корневой папке проекта.
version: '3.4'
services:
blazorapp:
image: blazorapp
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:80
5. Запускаем!
Старт контейнера
Перед запуском проверяем, что файлы находятся в правильном месте:
> docker-compose up
Ждем загрузку images... Image создан, контейнер стартовал:
Я использовал порт наружу 8080
Запускаем браузер на http://localhost:8080
Заключение
В новой версии NET5 возможно всё упростится, но тем не менее это не исключает возможности знать как это работает.
P.S.: Пишите правильный код!




