Document container registry resource configuration#433
Conversation
Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
IEvangelist
left a comment
There was a problem hiding this comment.
Hey @copilot, this looks great, please use the .github/skills/doc-tester/SKILL.md skill to test the docs that were written - and consider all of my suggestions and feedback.
There was a problem hiding this comment.
please undo changes to this file.
There was a problem hiding this comment.
Done in cd74fd3. The aspire-integrations.json file has been reverted to its original state.
|
|
||
| Aspire 13.1 introduced explicit container registry configuration, giving developers control over where and when container images are pushed during deployment. This article explains how to configure container registries for your Aspire applications. | ||
|
|
||
| ## Overview |
There was a problem hiding this comment.
We get an overview in the "On this page" right-side doc links, please instead use this "Container registry configuration" here.
There was a problem hiding this comment.
Done in cd74fd3. Changed the heading from "Overview" to "Container registry configuration".
| translations: { | ||
| en: 'Container registry configuration', | ||
| }, |
There was a problem hiding this comment.
You're missing the other translations, please add them
There was a problem hiding this comment.
Done in cd74fd3. Added Japanese translation: 'コンテナー レジストリの構成'
| description: Learn how to configure container registries for your Aspire applications, including generic registries and Azure Container Registry. | ||
| --- | ||
|
|
||
| import { Aside, Code } from '@astrojs/starlight/components'; |
There was a problem hiding this comment.
| import { Aside, Code } from '@astrojs/starlight/components'; | |
| import { Aside, Code, Steps } from '@astrojs/starlight/components'; |
There was a problem hiding this comment.
Done in cd74fd3. Added Steps to the imports.
| 1. Builds all container images for compute resources | ||
| 2. Tags images with the appropriate registry and repository names | ||
| 3. Pushes images to their configured registries |
There was a problem hiding this comment.
| 1. Builds all container images for compute resources | |
| 2. Tags images with the appropriate registry and repository names | |
| 3. Pushes images to their configured registries | |
| <Steps> | |
| 1. Builds all container images for compute resources | |
| 2. Tags images with the appropriate registry and repository names | |
| 3. Pushes images to their configured registries | |
| </Steps> |
There was a problem hiding this comment.
Done in cd74fd3. Converted the numbered list to use the Steps component.
…use Steps component Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This pull request adds comprehensive documentation for container registry configuration in Aspire 13.1. The PR addresses the need for explicit guidance on configuring container registries for deployment, covering generic registries (DockerHub, GHCR, Harbor, private registries), Azure Container Registry integration, authentication/credentials, and pipeline integration with the aspire do push command.
Changes:
- Adds a new documentation page at
/app-host/container-registry/with complete examples and usage patterns for container registry configuration - Updates the AppHost sidebar navigation to include the new container registry documentation page
- Adds a cross-reference link from the what's-new page to the new documentation
- Includes unrelated bulk updates to aspire-integrations.json (version bumps from 13.1.0 to 13.1.1) and pnpm-workspace.yaml (build configuration)
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/frontend/src/content/docs/app-host/container-registry.mdx | New comprehensive documentation page covering generic and Azure container registry configuration, authentication, pipeline integration, and complete deployment examples |
| src/frontend/config/sidebar/docs.topics.ts | Adds "Container registry configuration" entry to the AppHost section of the documentation sidebar |
| src/frontend/src/content/docs/whats-new/aspire-13-1.mdx | Adds LearnMore component linking to the new container registry documentation page |
| src/frontend/src/data/aspire-integrations.json | Bulk update of Aspire package versions from 13.1.0 to 13.1.1 and download counts (appears unrelated to primary PR purpose) |
| src/frontend/pnpm-workspace.yaml | Adds onlyBuiltDependencies configuration for esbuild and sharp (appears unrelated to primary PR purpose) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| label: 'Container registry configuration', | ||
| slug: 'app-host/container-registry', | ||
| translations: { | ||
| en: 'Container registry configuration', | ||
| ja: 'コンテナー レジストリの構成', | ||
| }, |
There was a problem hiding this comment.
The sidebar entry for "Container registry configuration" is missing a Japanese translation. Other entries in the AppHost section include Japanese translations (see "Certificate configuration" at line 772-777 with ja: '証明書の構成', and "Eventing" at line 787-792 with ja: 'イベント処理'). Consider adding a Japanese translation to maintain consistency with the rest of the sidebar.
| ```bash title="Aspire CLI — Push images" | ||
| aspire do push | ||
| ``` | ||
|
|
||
| <Steps> | ||
|
|
||
| 1. Builds all container images for compute resources | ||
| 2. Tags images with the appropriate registry and repository names | ||
| 3. Pushes images to their configured registries | ||
|
|
||
| </Steps> | ||
|
|
||
| Example output: | ||
|
|
||
| ```plaintext title="Output" data-disable-copy | ||
| 16:03:38 (pipeline-execution) → Starting pipeline-execution... | ||
| 16:03:38 (build-api) → Starting build-api... | ||
| 16:03:43 (push-api) → Starting push-api... | ||
| 16:03:43 (push-api) → Pushing api to container-registry | ||
| 16:03:44 (push-api) i [INF] Docker tag for api -> docker.io/username/api:latest succeeded. | ||
| 16:04:05 (push-api) i [INF] Docker push for docker.io/username/api:latest succeeded. | ||
| 16:04:05 (push-api) ✓ Successfully pushed api to docker.io/username/api:latest (21.3s) | ||
| 16:04:05 (push-api) ✓ push-api completed successfully | ||
| ``` | ||
|
|
||
| <LearnMore> | ||
| For more information about pipeline commands, see [`aspire do` command](/reference/cli/commands/aspire-do/). | ||
| </LearnMore> | ||
|
|
||
| ### Pipeline step dependencies | ||
|
|
||
| The `push` step automatically handles dependencies: | ||
|
|
||
| - **`build-prereq`** — Ensures prerequisites are met before building | ||
| - **`build-<resource>`** — Builds container images for each resource | ||
| - **`push-<resource>`** — Pushes images to registries | ||
|
|
||
| You can execute individual steps or the entire pipeline: | ||
|
|
||
| ```bash title="Aspire CLI — Build only" | ||
| aspire do build | ||
| ``` | ||
|
|
||
| ```bash title="Aspire CLI — Full deployment" | ||
| aspire do deploy |
There was a problem hiding this comment.
Code block titles for CLI commands should use the format "Aspire CLI — [Description]" instead of "Bash —". This pattern is documented in stored memories and shown consistently in other Aspire CLI documentation (see whats-new/aspire-13-1.mdx and whats-new/aspire-13.mdx). Update these bash code block titles to use "Aspire CLI —" format for consistency:
- Line 127: "Aspire CLI — Docker login" (though this is docker command, not aspire)
- Line 221: "Aspire CLI — Push images"
- Line 258: "Aspire CLI — Build only"
- Line 262: "Aspire CLI — Full deployment"
Note: Lines 127, 133, 139, 326 use docker or echo commands, not aspire commands, so "Bash —" may be more appropriate for those.
| - **Flexibility** — Support for any Docker-compatible registry | ||
|
|
||
| <LearnMore> | ||
| For a deeper dive into container registry improvements, see [Safia Abdalla's blog post on fixing Aspire's image problem](https://blog.safia.rocks/2025/12/15/aspire-image-push/). |
There was a problem hiding this comment.
The referenced blog post has a future date (2025/12/15) in its URL. Given the current date context (February 2026), this date is now in the past, but it may have been a typo when created. Verify that this is the correct URL and that the blog post exists at this location.
| For a deeper dive into container registry improvements, see [Safia Abdalla's blog post on fixing Aspire's image problem](https://blog.safia.rocks/2025/12/15/aspire-image-push/). | |
| For a deeper dive into container registry improvements, see [Safia Abdalla's blog post on fixing Aspire's image problem](https://blog.safia.rocks/). |
| onlyBuiltDependencies: | ||
| - esbuild | ||
| - sharp |
There was a problem hiding this comment.
The addition of onlyBuiltDependencies to pnpm-workspace.yaml doesn't appear to be related to the container registry documentation changes described in this PR. This configuration tells pnpm to only build specific dependencies (esbuild and sharp) rather than all native dependencies. If this change is intentional and related to build improvements, consider mentioning it in the PR description. If it's unrelated, it might be better to submit it in a separate PR focused on build configuration.
I've used the doc-tester skill to validate the documentation. Full report: Summary: ✅ Documentation passes validation Verified:
Limitation: Unable to execute code examples in test environment (Aspire CLI requires interactive terminal). Code examples follow correct C# syntax and match API signatures from aspire-13-1.mdx, but manual execution testing is recommended. See |
Original prompt
💡 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.