38 lines
		
	
	
	
		
			901 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			901 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build-server
 | |
| 
 | |
| RUN apk add clang binutils musl-dev build-base zlib-static cmake openssl-dev openssl-libs-static openssl
 | |
| 
 | |
| WORKDIR /src/TanksServer
 | |
| 
 | |
| # dependencies
 | |
| COPY TanksServer/TanksServer.csproj .
 | |
| RUN dotnet restore --runtime linux-musl-x64 TanksServer.csproj
 | |
| 
 | |
| #build
 | |
| COPY TanksServer .
 | |
| RUN dotnet build TanksServer.csproj -c Release -o /app/build
 | |
| RUN dotnet publish TanksServer.csproj -r linux-musl-x64 -c Release -o /app/publish
 | |
| 
 | |
| 
 | |
| FROM node:21-alpine AS build-client
 | |
| WORKDIR /app
 | |
| 
 | |
| # dependencies
 | |
| COPY tank-frontend/package.json .
 | |
| COPY tank-frontend/package-lock.json .
 | |
| RUN npm i
 | |
| 
 | |
| # build
 | |
| env CONTAINERMODE 1
 | |
| COPY tank-frontend .
 | |
| RUN npm run build
 | |
| 
 | |
| 
 | |
| FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-alpine AS final
 | |
| WORKDIR /app
 | |
| 
 | |
| COPY --from=build-server /app/publish .
 | |
| COPY --from=build-client /app/dist ./client
 | |
| 
 | |
| EXPOSE 80
 | |
| ENTRYPOINT ./TanksServer
 | 
