2
0
Files
logikonline a4506613fd feat: initialize GitCaddy.AI service project structure
Add complete project scaffolding for GitCaddy.AI, an AI-powered Git assistant service. Includes:

- gRPC service implementation with proto definitions
- Core services: chat, code review, code intelligence, documentation, issues, and workflows
- AI provider factory with configuration support
- License validation system
- Docker containerization with dev and prod compose files
- .NET 9.0 solution with service and client projects
2026-01-19 10:06:55 -05:00

49 lines
1.4 KiB
Docker

# GitCaddy AI Service Dockerfile
# Copyright 2026 MarketAlly. All rights reserved.
# SPDX-License-Identifier: BSL-1.1
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
WORKDIR /app
EXPOSE 5000
EXPOSE 5001
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
# Copy project files
COPY ["src/GitCaddy.AI.Service/GitCaddy.AI.Service.csproj", "src/GitCaddy.AI.Service/"]
COPY ["src/GitCaddy.AI.Client/GitCaddy.AI.Client.csproj", "src/GitCaddy.AI.Client/"]
COPY ["protos/", "protos/"]
# Copy MarketAlly.AIPlugin (assumes it's in the parent directory)
# In production, this would be a NuGet package reference
COPY ["../marketally.aiplugin/MarketAlly.AIPlugin/", "../marketally.aiplugin/MarketAlly.AIPlugin/"]
# Restore
RUN dotnet restore "src/GitCaddy.AI.Service/GitCaddy.AI.Service.csproj"
# Copy source
COPY . .
# Build
WORKDIR "/src/src/GitCaddy.AI.Service"
RUN dotnet build "GitCaddy.AI.Service.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "GitCaddy.AI.Service.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
# Create logs directory
RUN mkdir -p /app/logs
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:5000/health || exit 1
ENTRYPOINT ["dotnet", "GitCaddy.AI.Service.dll"]