# ContainerRegistryResource

- Kind: `class`
- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Version: `13.3.0`
- Namespace: `Aspire.Hosting.ApplicationModel`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/bd20f904cde09ecb9c9ae5116a6f13614bf2d7c2/src/Aspire.Hosting/ApplicationModel/ContainerRegistryResource.cs)
- Inherits: [Resource](/reference/api/csharp/aspire.hosting/resource.md)
- Implements: [IContainerRegistry](/reference/api/csharp/aspire.hosting/icontainerregistry.md)

Represents a general-purpose container registry resource that can be used to reference external container registries (e.g., Docker Hub, GitHub Container Registry, or private registries) in the application model.

## Definition

```csharp
namespace Aspire.Hosting.ApplicationModel;

public class ContainerRegistryResource
    : Aspire.Hosting.ApplicationModel.Resource,
      Aspire.Hosting.ApplicationModel.IContainerRegistry
{
    // ...
}
```

## Remarks

This resource implements [IContainerRegistry](/reference/api/csharp/aspire.hosting/icontainerregistry.md) and allows configuration using either [ParameterResource](/reference/api/csharp/aspire.hosting/parameterresource.md) values or hard-coded strings, providing flexibility for scenarios where registry configuration needs to be dynamically provided or statically defined. Use [ContainerRegistryResourceBuilderExtensions.AddContainerRegistry(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting/containerregistryresourcebuilderextensions/methods.md#addcontainerregistry-idistributedapplicationbuilder-string-iresourcebuilder-parameterresource-iresourcebuilder-parameterresource) to add a container registry with parameterized values, or [ContainerRegistryResourceBuilderExtensions.AddContainerRegistry(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)](/reference/api/csharp/aspire.hosting/containerregistryresourcebuilderextensions/methods.md#addcontainerregistry-idistributedapplicationbuilder-string-iresourcebuilder-parameterresource-iresourcebuilder-parameterresource) to add a container registry with literal values.

## Constructors

- [ContainerRegistryResource(string, ReferenceExpression, ReferenceExpression?)](/reference/api/csharp/aspire.hosting/containerregistryresource/constructors.md#constructor-string-referenceexpression-referenceexpression) -- Initializes a new instance of the [ContainerRegistryResource](/reference/api/csharp/aspire.hosting/containerregistryresource.md) class.

## Examples

### Example 1

Add a container registry with parameterized values:

```csharp
var endpointParameter = builder.AddParameter("registry-endpoint");
var repositoryParameter = builder.AddParameter("registry-repo");
var registry = builder.AddContainerRegistry("my-registry", endpointParameter, repositoryParameter);
```

### Example 2

Add a container registry with literal values:

```csharp
var registry = builder.AddContainerRegistry("docker-hub", "docker.io", "myusername");
```
