Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Oct 10, 2025

This PR implements Docker containerization for the MCP server and updates the release workflow to build and publish both API and MCP server images with new naming conventions.

Changes

1. New MCP Server Dockerfile

Created mcpserver/Dockerfile with a multi-stage build:

  • Build stage: Uses mcr.microsoft.com/dotnet/sdk:9.0 to compile the .NET application
  • Runtime stage: Uses mcr.microsoft.com/dotnet/aspnet:9.0 for a smaller final image
  • Optimized layer caching by copying the project file before source code
  • Configured to run on port 3001 (matches the MCP server configuration in Program.cs)
  • Includes health check endpoint
  • Supports multi-platform builds (linux/amd64, linux/arm64, linux/arm/v7)

2. Updated Release Workflow

Modified .github/workflows/full-release.yml to build and publish both images:

API Server Image (renamed):

  • Changed from task-wizard to task-wizard-api
  • Updated build context to ./apiserver for more precise builds
  • Explicitly specified Dockerfile path: ./apiserver/Dockerfile

MCP Server Image (new):

  • Added new build step for the MCP server
  • Image name: task-wizard-mcp
  • Build context: ./mcpserver
  • Dockerfile path: ./mcpserver/Dockerfile

Both Deployment Rings Updated:

  • Canary ring: Builds and pushes both {image}:canary and {image}:{version-tag}
  • Release ring: Promotes canary images to {image}:release tags

Image Naming Convention

Ring API Server Image MCP Server Image
Canary task-wizard-api:canary task-wizard-mcp:canary
Canary task-wizard-api:{tag} task-wizard-mcp:{tag}
Release task-wizard-api:release task-wizard-mcp:release

All images are published to Azure Container Registry with multi-platform support maintained.

Testing

  • ✅ Dockerfile syntax validated
  • ✅ Local build tests successful for both images
  • ✅ Workflow YAML validated
  • ✅ CodeQL security checks passed
Original prompt

Create a docker image to run the MCP server. Add the docker file in the MCP server folder. Then add the necessary steps in the existing realease github action. Rename the api server image to task-wizard-api and the new MCP image should be named task-wizard-mcp. Follow the same convention for release and canary rings


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Add Docker image for MCP server and update GitHub Actions Add Docker image for MCP server and rename images to task-wizard-api and task-wizard-mcp Oct 10, 2025
Copilot AI requested a review from dkhalife October 10, 2025 20:19
@dkhalife dkhalife marked this pull request as ready for review October 10, 2025 20:21
Copilot AI review requested due to automatic review settings October 10, 2025 20:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds Docker containerization for the MCP server and establishes a consistent naming convention for both API and MCP server Docker images with proper deployment ring support.

  • Creates a multi-stage Dockerfile for the MCP server with optimized build caching and health checks
  • Updates the GitHub Actions workflow to build and publish both images with new naming conventions
  • Implements proper deployment ring promotion for both canary and release environments

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
mcpserver/Dockerfile New multi-stage Dockerfile for MCP server with .NET 9.0 runtime and health check configuration
.github/workflows/full-release.yml Updated workflow to build both task-wizard-api and task-wizard-mcp images with separate build contexts and deployment ring promotion

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@codecov
Copy link

codecov bot commented Oct 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@dkhalife dkhalife enabled auto-merge (squash) October 11, 2025 23:57
@dkhalife dkhalife merged commit a775cfc into main Oct 11, 2025
6 checks passed
@dkhalife dkhalife deleted the copilot/add-docker-image-for-mcp branch October 11, 2025 23:58
dkhalife pushed a commit that referenced this pull request Oct 11, 2025
…ctory (#202)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants