ReadyForQuantum / Dockerfile
Mungert's picture
Update Dockerfile
037065a verified
# Use the official Debian 13 (Trixie) base image
FROM debian:13
ENV DEBIAN_FRONTEND=noninteractive
# Install system-level dependencies as root
RUN apt-get update && \
apt-get install -y \
curl \
git \
wget \
vim \
libicu-dev
# Create a non-root user and set up their environment
RUN useradd -m user && \
mkdir -p /home/user/code && \
chown -R user:user /home/user
USER user
WORKDIR /home/user
RUN mkdir -p /home/user/code/models
# Install .NET 10 as the non-root user
RUN wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh && \
chmod +x dotnet-install.sh && \
./dotnet-install.sh --channel 10.0
ENV DOTNET_ROOT=/home/user/.dotnet
ENV PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
RUN whoami && dotnet --version
# Clone repositories using the GITHUB_TOKEN secret
RUN --mount=type=secret,id=GITHUB_TOKEN,mode=0444,required=true \
git clone https://$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorLib.git /home/user/code/NetworkMonitorLib && \
git clone https://$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorChatRazorLib.git /home/user/code/NetworkMonitorChatRazorLib && \
git clone https://$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorBlazor.git /home/user/code/NetworkMonitorBlazor
EXPOSE 7860
# Build + publish the Blazor app
WORKDIR /home/user/code/NetworkMonitorBlazor
RUN dotnet restore && \
dotnet publish -c Release -o /home/user/code/app
# Clean up repos (optional)
RUN rm -rf /home/user/code/NetworkMonitorLib /home/user/code/NetworkMonitorChatRazorLib /home/user/code/NetworkMonitorBlazor
# Copy config into publish folder
COPY --chown=user:user appsettings.json /home/user/code/app/appsettings.json
WORKDIR /home/user/code/app
CMD ["dotnet", "NetworkMonitorBlazor.dll", "--urls", "http://0.0.0.0:7860"]