Добавьте файлы проекта.
This commit is contained in:
41
PlaylistShared.Pwa/Dockerfile
Normal file
41
PlaylistShared.Pwa/Dockerfile
Normal file
@@ -0,0 +1,41 @@
|
||||
# ---- Stage 1: Build ----
|
||||
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
WORKDIR /src
|
||||
|
||||
# Устанавливаем Python (необходим для WebAssembly компиляции)
|
||||
RUN apt-get update && apt-get install -y python3 && ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
# Устанавливаем workload для WebAssembly
|
||||
RUN dotnet workload install wasm-tools
|
||||
|
||||
# Копируем csproj всех проектов для восстановления зависимостей
|
||||
COPY ["PlaylistShared.Pwa/PlaylistShared.Pwa.csproj", "PlaylistShared.Pwa/"]
|
||||
COPY ["PlaylistShared.Shared/PlaylistShared.Shared.csproj", "PlaylistShared.Shared/"]
|
||||
|
||||
# Восстанавливаем зависимости
|
||||
RUN dotnet restore "PlaylistShared.Pwa/PlaylistShared.Pwa.csproj"
|
||||
|
||||
# Копируем весь исходный код
|
||||
COPY . .
|
||||
|
||||
# Переходим в папку проекта и публикуем
|
||||
WORKDIR "/src/PlaylistShared.Pwa"
|
||||
RUN dotnet publish "./PlaylistShared.Pwa.csproj" -c $BUILD_CONFIGURATION -o /app/publish
|
||||
|
||||
RUN ls -la /app/publish/wwwroot
|
||||
|
||||
# ---- Stage 2: Nginx ----
|
||||
FROM nginx:alpine AS final
|
||||
|
||||
# Копируем кастомную конфигурацию Nginx
|
||||
COPY PlaylistShared.Pwa/nginx.conf /etc/nginx/nginx.conf
|
||||
|
||||
# Удаляем дефолтную статику Nginx
|
||||
RUN rm -rf /usr/share/nginx/html/*
|
||||
|
||||
# Копируем собранные файлы Blazor (wwwroot) в папку Nginx
|
||||
COPY --from=build /app/publish/wwwroot /usr/share/nginx/html
|
||||
|
||||
# Открываем порт 80
|
||||
EXPOSE 80
|
||||
Reference in New Issue
Block a user