# DockerComposeEnvironmentExtensions Methods

- Package: [Aspire.Hosting.Docker](/reference/api/csharp/aspire.hosting.docker.md)
- Type: [DockerComposeEnvironmentExtensions](/reference/api/csharp/aspire.hosting.docker/dockercomposeenvironmentextensions.md)
- Kind: `Methods`
- Members: `6`

Provides extension methods for adding Docker Compose environment resources to the application model.

## AddDockerComposeEnvironment(IDistributedApplicationBuilder, string)

- Name: `AddDockerComposeEnvironment(IDistributedApplicationBuilder, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L72-L94)

Adds a Docker Compose environment to the application model.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> AddDockerComposeEnvironment(
        this IDistributedApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The `Hosting.IDistributedApplicationBuilder`.
- `name` (`string`)
  The name of the Docker Compose environment resource.

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## ConfigureComposeFile(IResourceBuilder<DockerComposeEnvironmentResource>, Action<ComposeFile>)

- Name: `ConfigureComposeFile(IResourceBuilder<DockerComposeEnvironmentResource>, Action<ComposeFile>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L127-L131)

Configures the Docker Compose file for the environment resource.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> ConfigureComposeFile(
        this IResourceBuilder<DockerComposeEnvironmentResource> builder,
        Action<ComposeFile> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<DockerComposeEnvironmentResource>`)
  The Docker compose environment resource builder.
- `configure` (`Action<ComposeFile>`)
  A method that can be used for customizing the [ComposeFile](/reference/api/csharp/aspire.hosting.docker/composefile.md).

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## Remarks

This callback runs after the Docker Compose model has been generated and before it is written to disk. Use it to customize the generated [ComposeFile](/reference/api/csharp/aspire.hosting.docker/composefile.md) for the environment.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## ConfigureEnvFile(IResourceBuilder<DockerComposeEnvironmentResource>, Action<IDictionary<string, CapturedEnvironmentVariable>>)

- Name: `ConfigureEnvFile(IResourceBuilder<DockerComposeEnvironmentResource>, Action<IDictionary<string, CapturedEnvironmentVariable>>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L149-L153)

Configures the captured environment variables for the Docker Compose environment before they are written to the .env file.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> ConfigureEnvFile(
        this IResourceBuilder<DockerComposeEnvironmentResource> builder,
        Action<IDictionary<string, CapturedEnvironmentVariable>> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<DockerComposeEnvironmentResource>`)
  The Docker Compose environment resource builder.
- `configure` (`Action<IDictionary<string, CapturedEnvironmentVariable>>`)
  A method that can be used for customizing the captured environment variables.

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## Remarks

This callback is invoked during the prepare phase, allowing programmatic modification of the environment variables that will be written to the environment-specific `.env` file adjacent to the Docker Compose file.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDashboard(IResourceBuilder<DockerComposeEnvironmentResource>, bool)

- Name: `WithDashboard(IResourceBuilder<DockerComposeEnvironmentResource>, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L165-L169)

Enables the Aspire dashboard for telemetry visualization in this Docker Compose environment.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> WithDashboard(
        this IResourceBuilder<DockerComposeEnvironmentResource> builder,
        bool enabled = true)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<DockerComposeEnvironmentResource>`)
  The Docker Compose environment resource builder.
- `enabled` (`bool`) `optional`
  Whether to enable the dashboard. Default is true.

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDashboard(IResourceBuilder<DockerComposeEnvironmentResource>, Action<IResourceBuilder<DockerComposeAspireDashboardResource>>)

- Name: `WithDashboard(IResourceBuilder<DockerComposeEnvironmentResource>, Action<IResourceBuilder<DockerComposeAspireDashboardResource>>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L181-L189)

Configures the dashboard properties for this Docker Compose environment.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> WithDashboard(
        this IResourceBuilder<DockerComposeEnvironmentResource> builder,
        Action<IResourceBuilder<DockerComposeAspireDashboardResource>> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<DockerComposeEnvironmentResource>`)
  The Docker Compose environment resource builder.
- `configure` (`Action<IResourceBuilder<DockerComposeAspireDashboardResource>>`)
  A method that can be used for customizing the dashboard service.

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithProperties(IResourceBuilder<DockerComposeEnvironmentResource>, Action<DockerComposeEnvironmentResource>)

- Name: `WithProperties(IResourceBuilder<DockerComposeEnvironmentResource>, Action<DockerComposeEnvironmentResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<DockerComposeEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Docker/DockerComposeEnvironmentExtensions.cs#L106-L111)

Allows setting the properties of a Docker Compose environment resource.

```csharp
public static class DockerComposeEnvironmentExtensions
{
    public static IResourceBuilder<DockerComposeEnvironmentResource> WithProperties(
        this IResourceBuilder<DockerComposeEnvironmentResource> builder,
        Action<DockerComposeEnvironmentResource> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<DockerComposeEnvironmentResource>`)
  The Docker Compose environment resource builder.
- `configure` (`Action<DockerComposeEnvironmentResource>`)
  A method that can be used for customizing the [DockerComposeEnvironmentResource](/reference/api/csharp/aspire.hosting.docker/dockercomposeenvironmentresource.md).

## Returns

`IResourceBuilder<DockerComposeEnvironmentResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
