diff --git a/BattSim.csproj b/BattSim.csproj index 335c097..354880f 100644 --- a/BattSim.csproj +++ b/BattSim.csproj @@ -6,9 +6,6 @@ enable true service-worker-assets.js - true - true - true diff --git a/Dockerfile b/Dockerfile index ecd65cc..929b4e9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build stage -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS launch +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src # Install Python (required for AOT compilation) @@ -7,28 +7,21 @@ RUN apt-get update && \ apt-get install -y python3 && \ ln -s /usr/bin/python3 /usr/bin/python - -# Update workloads and SDK -RUN dotnet --list-sdks -RUN dotnet --list-runtimes -RUN dotnet workload update - -# Copy project and solution files -COPY *.csproj *.sln ./ - # Install required workloads RUN dotnet workload install wasm-tools +# Copy project and solution files +COPY *.csproj ./ +RUN dotnet restore + # Copy the rest of the application COPY . . -# Restore dependencies -RUN dotnet restore - -# Publish the app (optional, if you want to test publish output) -# RUN dotnet publish -c Release -o /app/publish - -# Runtime stage: Use the SDK image to run the app -ENTRYPOINT ["dotnet", "run", "--no-launch-profile", "--urls", "http://0.0.0.0:5000"] -EXPOSE 5000 +# Publish the app +RUN dotnet publish -c Release -o /app/publish +# Runtime stage: Use Nginx to serve static files +FROM nginx:alpine +COPY --from=build /app/publish/wwwroot /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 diff --git a/docker-compose.yml b/docker-compose.yml index 017302a..0df73b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,12 @@ version: '3.8' services: - web: + wattif: build: context: . dockerfile: Dockerfile ports: - - "5000:5000" + - "5000:80" restart: unless-stopped + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..41bbdf9 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,18 @@ +server { + listen 80; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ /index.html =404; + } + + include /etc/nginx/mime.types; + types { + application/wasm wasm; + application/manifest+json webmanifest; + application/octet-stream dll pdb webcil; + } +}