-
Notifications
You must be signed in to change notification settings - Fork 28
/
Dockerfile
48 lines (36 loc) · 1.43 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
################################################################################
################################################################## build ###
FROM --platform=linux/amd64 mcr.microsoft.com/dotnet/sdk:6.0 as build
WORKDIR /app/
COPY ./Shared/Shared.csproj ./Shared/Shared.csproj
COPY ./Server/Server.csproj ./Server/Server.csproj
ARG TARGETARCH
# Download NuGet dependencies
RUN dotnet restore \
./Server/Server.csproj \
-r debian.11-`echo $TARGETARCH | sed 's@^amd@x@'` \
;
COPY ./Shared/ ./Shared/
COPY ./Server/ ./Server/
# Build application binary
RUN dotnet publish \
./Server/Server.csproj \
-r debian.11-`echo $TARGETARCH | sed 's@^amd@x@'` \
-c Release \
-o ./out/ \
--no-restore \
--self-contained \
-p:publishSingleFile=true \
;
################################################################## build ###
################################################################################
################################################################ runtime ###
FROM mcr.microsoft.com/dotnet/runtime:6.0 as runtime
# Copy application binary from build stage
COPY --from=build /app/out/ /app/
ENTRYPOINT [ "/app/Server" ]
EXPOSE 1027/tcp
WORKDIR /data/
VOLUME /data/
################################################################ runtime ###
################################################################################