From ac6559ede286ead86171f1195dfa646a3d40aee5 Mon Sep 17 00:00:00 2001 From: Ryan Sweet Date: Mon, 10 Feb 2025 11:50:53 -0800 Subject: [PATCH] adding initial docker support for agenthost --- .../Microsoft.AutoGen/AgentHost/.dockerignore | 31 +++++++++++++++++ .../Microsoft.AutoGen/AgentHost/Dockerfile | 34 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 dotnet/src/Microsoft.AutoGen/AgentHost/.dockerignore create mode 100644 dotnet/src/Microsoft.AutoGen/AgentHost/Dockerfile diff --git a/dotnet/src/Microsoft.AutoGen/AgentHost/.dockerignore b/dotnet/src/Microsoft.AutoGen/AgentHost/.dockerignore new file mode 100644 index 000000000000..b216036d2ab4 --- /dev/null +++ b/dotnet/src/Microsoft.AutoGen/AgentHost/.dockerignore @@ -0,0 +1,31 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** +/python \ No newline at end of file diff --git a/dotnet/src/Microsoft.AutoGen/AgentHost/Dockerfile b/dotnet/src/Microsoft.AutoGen/AgentHost/Dockerfile new file mode 100644 index 000000000000..abb9da1308fe --- /dev/null +++ b/dotnet/src/Microsoft.AutoGen/AgentHost/Dockerfile @@ -0,0 +1,34 @@ +# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +# This stage is used when running from VS in fast mode (Default for Debug configuration) +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 5001 + +# This stage is used to build the service project +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["dotnet/Directory.Packages.props", "dotnet/"] +COPY ["dotnet/Directory.Build.props", "dotnet/"] +COPY ["dotnet/Directory.Build.targets", "dotnet/"] +COPY ["dotnet/NuGet.config", "dotnet/"] +COPY ["dotnet/src/Microsoft.Autogen.AgentHost/Microsoft.Autogen.AgentHost.csproj", "dotnet/src/Microsoft.Autogen.AgentHost/"] +COPY ["dotnet/src/Microsoft.AutoGen.Runtime.Grpc/Microsoft.AutoGen.RuntimeGateway.Grpc.csproj", "dotnet/src/Microsoft.AutoGen.RuntimeGateway.Grpc/"] +COPY ["dotnet/src/Microsoft.AutoGen.Contracts/Microsoft.AutoGen.Contracts.csproj", "dotnet/src/Microsoft.AutoGen.Contracts/"] +RUN dotnet restore "./dotnet/src/Microsoft.Autogen.AgentHost/Microsoft.Autogen.AgentHost.csproj" +COPY . . +WORKDIR "/src/dotnet/src/Microsoft.Autogen.AgentHost" +RUN dotnet build "./Microsoft.Autogen.AgentHost.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# This stage is used to publish the service project to be copied to the final stage +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./Microsoft.Autogen.AgentHost.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "Microsoft.Autogen.AgentHost.dll"] \ No newline at end of file