Skip to content

Expand README with Aspire orchestration, persistent volumes, and CI/CD documentation#3

Merged
BethMassi merged 3 commits intomainfrom
copilot/update-readme-details
Jan 15, 2026
Merged

Expand README with Aspire orchestration, persistent volumes, and CI/CD documentation#3
BethMassi merged 3 commits intomainfrom
copilot/update-readme-details

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 15, 2026

The README lacked details on Aspire configuration, volume persistence, and GitHub Actions deployment workflow.

Documentation Added

Aspire AppHost Configuration

  • Docker Compose environment setup - Volume definitions at compose level
  • Container registry integration - Parameter-driven GHCR configuration
  • SQL Server volume mounting - WithDataVolume() for /var/opt/mssql persistence, WithLifetime(ContainerLifetime.Persistent) for container longevity
  • Blazor Web volume mounting - Custom entrypoint for permission management on /app/wwwroot/uploads
.PublishAsDockerComposeService((resource, service) =>
{
    service.AddVolume(new Volume
    {
        Source = "volumemount-blazor-uploads",
        Target = "/app/wwwroot/uploads"
    });
    service.Command = new List<string>
    {
        "/bin/sh", "-c",
        "chown -R app:app /app/wwwroot/uploads && chmod -R 755 /app/wwwroot/uploads && exec su app -c 'dotnet /app/VolumeMount.BlazorWeb.dll'"
    };
});

Volume Persistence

  • SQL Server volume - Database files persist at /var/opt/mssql
  • Upload volume - Image files persist at /app/wwwroot/uploads
  • PhotoUploadService implementation - Direct filesystem writes to mounted volume

GitHub Actions Workflow

  • aspire publish - Generates docker-compose.yaml and .env template from AppHost configuration
  • aspire do push - Builds and pushes BlazorWeb image to GHCR using Parameters__registry_endpoint and Parameters__registry_repository
  • Deployment artifacts - Docker Compose files retained for 30 days as downloadable archive (.zip), image at ghcr.io/bethmassi/volumemount/blazorweb:latest

Development & Deployment

  • Aspire.dev links - Added hyperlinks to Aspire documentation and CLI installation guide
  • Local development setup - Using aspire run command with user secrets
  • Local deployment - Using aspire deploy for containerized local deployment with Docker Desktop
  • Dashboard access - Instructions for accessing Aspire Dashboard at http://localhost:18888
  • BlazorWeb app access - Instructions for accessing the deployed app at http://localhost:8080
  • Production deployment - Using generated artifacts from GitHub Actions workflow
Original prompt

This section details on the original issue you should resolve

<issue_title>Update README with more details</issue_title>
<issue_description>Add details on what the sample demonstrates, focusing on the Aspire AppHost.cs, the Aspire Docker Integration, persisting Volumes for SQLServer and for storing files on the server. Also add a section on how the aspire cli is used in the GitHub actions workflow so that it does the publish of the docker-compose artifacts and push of the BlazorWeb project container image to GitHub Container Registry. </issue_description>

Comments on the Issue (you are @copilot in this section)


💡 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.

Co-authored-by: BethMassi <5115571+BethMassi@users.noreply.github.com>
Copilot AI changed the title [WIP] Update README with additional sample details Expand README with Aspire orchestration, persistent volumes, and CI/CD documentation Jan 15, 2026
Copilot AI requested a review from BethMassi January 15, 2026 02:01
Copy link
Copy Markdown
Owner

@BethMassi BethMassi left a comment

Choose a reason for hiding this comment

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

@copilot please address these comments.

README.md Outdated
4. Run the AppHost:
```bash
cd VolumeMount.AppHost
dotnet run
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
dotnet run
aspire run

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated to aspire run in commit 99262cb

README.md Outdated
To run the sample locally:

1. Install [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
2. Install [Docker Desktop](https://www.docker.com/products/docker-desktop)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
2. Install [Docker Desktop](https://www.docker.com/products/docker-desktop)
2. Install [Docker Desktop](https://www.docker.com/products/docker-desktop)
3. Install [Aspire CLI](https://aspire.dev/get-started/install-cli/)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added links for Docker Desktop and Aspire CLI installation in commit 99262cb

```
5. Open the Aspire Dashboard (URL shown in console output)
6. Access the BlazorWeb application through the dashboard

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
## Local Deployment
To containerize and deploy the application locally:
```bash
aspire deploy
This will set up the containerized application and volume mounts on your Docker desktop.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Don't forget to add this part for instruction on local 'aspire deploy'. It would be a good idea to also add how to run the blazorweb app on localhost as well as how to run the Aspire dashboard.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added "Local Deployment" section with aspire deploy instructions, plus details on running the Aspire Dashboard (at http://localhost:18888) and BlazorWeb app (at http://localhost:8080 or configured port) in commit 99262cb

README.md Outdated
# Persistent Volume & GHCR Publish Sample

This sample is based on the aspire-samples/volumemount sample. It demonstrates how to configure a SQL Server container to use a persistent volume in Aspire, so that the data is persisted across app launches. It shows how to write files (image uploads) to a persistent volume from a Blazor Web app.
This sample demonstrates how to use .NET Aspire to orchestrate a multi-container application with persistent data storage and automated deployment to production. It showcases:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
This sample demonstrates how to use .NET Aspire to orchestrate a multi-container application with persistent data storage and automated deployment to production. It showcases:
This sample demonstrates how to use [Aspire](https://aspire.dev) to orchestrate a multi-container application with persistent data storage and automated deployment to production. It showcases:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added link to aspire.dev in commit 99262cb

README.md Outdated

To deploy to production using the published artifacts:

1. Download the `docker-compose.yaml` and `.env` files from the Aspire publish output
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
1. Download the `docker-compose.yaml` and `.env` files from the Aspire publish output
1. Download the `docker-compose.yaml` and `.env` files from the Aspire publish output. These are the artifacts you can download as an archive (.zip) from the Actions workflow run.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Clarified that artifacts can be downloaded as an archive (.zip) from the Actions workflow run in commit 99262cb

README.md Outdated

- **Aspire simplifies container orchestration** - Configure everything in C# with strong typing
- **Persistent volumes preserve data** - Both database and uploaded files survive container restarts
- **Aspire CLI enables GitOps** - Generate deployment artifacts and publish images in CI/CD pipelines
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
- **Aspire CLI enables GitOps** - Generate deployment artifacts and publish images in CI/CD pipelines
- **Aspire CLI enables GitOps** - Generate deployment artifacts and publish images in CI/CD pipelines using the aspire CLI commands `aspire publish` and `aspire do push`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated to specify the aspire CLI commands aspire publish and aspire do push in commit 99262cb

…d deployment details

Co-authored-by: BethMassi <5115571+BethMassi@users.noreply.github.com>
@BethMassi
Copy link
Copy Markdown
Owner

@copilot submit the PR

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 15, 2026

@copilot submit the PR

I don't have permissions to merge pull requests. You'll need to merge this PR through the GitHub UI by clicking the "Merge pull request" button, or a repository maintainer with write access can merge it.

Copilot AI requested a review from BethMassi January 15, 2026 18:34
@BethMassi BethMassi marked this pull request as ready for review January 15, 2026 18:34
@BethMassi BethMassi merged commit 4afe8d8 into main Jan 15, 2026
1 check passed
@BethMassi BethMassi deleted the copilot/update-readme-details branch January 15, 2026 18:34
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.

Update README with more details

2 participants