# base image (Ubuntu 22)
FROM mcr.microsoft.com/dotnet/sdk:7.0-jammy
WORKDIR /src
# install necessary packages
RUN apt update \
    && apt install -y sudo libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1 libxkbcommon-dev libgdiplus
# restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# publish project
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
WORKDIR /app/publish
# update permissions
RUN chmod 775 /app/publish/runtimes/linux-x64/native/IronCefSubprocess
# run app
ENTRYPOINT ["dotnet", "Example.dll"]