diff --git a/Dockerfile b/Dockerfile
index 1fca072..6880cd5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,14 +1,26 @@
-FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+USER $APP_UID
WORKDIR /app
EXPOSE 8080
+EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
+ARG BUILD_CONFIGURATION=Release
WORKDIR /src
+COPY ["src/YarpGateway/YarpGateway.csproj", "src/YarpGateway/"]
+COPY ["src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Core/Fengling.ServiceDiscovery.Core.csproj", "src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Core/"]
+COPY ["src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Kubernetes/Fengling.ServiceDiscovery.Kubernetes.csproj", "src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Kubernetes/"]
+COPY ["src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Static/Fengling.ServiceDiscovery.Static.csproj", "src/Fengling.ServiceDiscovery/Fengling.ServiceDiscovery.Static/"]
+RUN dotnet restore "src/YarpGateway/YarpGateway.csproj"
COPY . .
-RUN dotnet restore
-RUN dotnet publish -c Release -o /app/publish
+WORKDIR "/src/src/YarpGateway"
+RUN dotnet build "./YarpGateway.csproj" -c $BUILD_CONFIGURATION -o /app/build
+
+FROM build AS publish
+ARG BUILD_CONFIGURATION=Release
+RUN dotnet publish "./YarpGateway.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
-COPY --from=build /app/publish .
+COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YarpGateway.dll"]
diff --git a/YarpGateway.csproj b/YarpGateway.csproj
index 1a9cef7..a8c1728 100644
--- a/YarpGateway.csproj
+++ b/YarpGateway.csproj
@@ -4,6 +4,7 @@
net10.0
enable
enable
+ Linux
@@ -26,4 +27,10 @@
+
+
+ .dockerignore
+
+
+