📄
GitBrowser.containerfile
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
FROM mcr.microsoft.com/dotnet/sdk:10.0@sha256:c7445f141c04f1a6b454181bd098dcfa606c61ba0bd213d0a702489e5bd4cd71 AS build
WORKDIR /app
RUN apt-get update && apt-get install -y build-essential curl
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
COPY ./.config/ ./.config/
RUN dotnet tool restore
COPY ./GitBrowser.SyntaxHighlighter/GitBrowser.SyntaxHighlighter.csproj ./GitBrowser.SyntaxHighlighter/
COPY ./GitBrowser.SyntaxHighlighter/packages.lock.json ./GitBrowser.SyntaxHighlighter/
COPY ./GitBrowser.SyntaxHighlighter/Cargo.toml ./GitBrowser.SyntaxHighlighter/
COPY ./GitBrowser.SyntaxHighlighter/Cargo.lock ./GitBrowser.SyntaxHighlighter/
RUN mkdir ./GitBrowser.SyntaxHighlighter/src && touch ./GitBrowser.SyntaxHighlighter/src/lib.rs
RUN cargo build --release --locked --manifest-path ./GitBrowser.SyntaxHighlighter/Cargo.toml
COPY ./GitBrowser.slnx ./global.json ./Directory.Packages.props ./Directory.Build.props ./.gitignore ./.editorconfig ./
COPY ./GitBrowser/GitBrowser.csproj ./GitBrowser/packages.lock.json ./GitBrowser/libman.json ./GitBrowser/
RUN cd ./GitBrowser && dotnet libman restore && cd ..
RUN dotnet restore --locked-mode
COPY ./GitBrowser.SyntaxHighlighter ./GitBrowser.SyntaxHighlighter
RUN touch -am ./GitBrowser.SyntaxHighlighter/src/lib.rs
COPY ./GitBrowser/ ./GitBrowser/
RUN dotnet build ./GitBrowser/GitBrowser.csproj --no-restore --configuration Release
RUN dotnet publish ./GitBrowser/GitBrowser.csproj --no-build --configuration Release --output /out
FROM mcr.microsoft.com/dotnet/aspnet:10.0@sha256:7c4246c1c384319346d45b3e24a10a21d5b6fc9b36a04790e1588148ff8055b0 AS release
WORKDIR /app
COPY --from=build /out ./
ENTRYPOINT ["dotnet", "./GitBrowser.dll"]