Запуск Blazor WebAssembly в Docker
MAUI и Blazor | создано: 19.10.2020 | опубликовано: 19.10.2020 | обновлено: 13.01.2024 | просмотров: 4336
Запускаем в 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.: Пишите правильный код!