Skip to content

Publishing docker compose fails if ProjectResource is excluded from manifest #9905

Open
@dombrovsky

Description

@dombrovsky

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

Docker compose publisher fails when ProjectResource is configured to be excluded from manifest (via ExcludeFromManifest()).

Error: Failed to publish the distributed application. System.Collections.Generic.KeyNotFoundException: The given key 'Aspire.Hosting.ApplicationModel.ProjectResource' was not present in the dictionary.

Expected Behavior

Resources which are excluded from manifest should be ignored by Docker Compose publisher.

Steps To Reproduce

builder.AddProject<Projects.Foo>("foo").ExcludeFromManifest();
builder.AddDockerComposeEnvironment("compose");

Execute aspire publish -o docker-compose-artifacts command.

Exceptions (if any)

info: Aspire.Hosting.DistributedApplication[0]
      
info: Aspire.Hosting.Publishing.Publisher[807050189]
      Generating Compose output
fail: Aspire.Hosting.DistributedApplicationRunner[0]
      Failed to publish the distributed application.
      System.Collections.Generic.KeyNotFoundException: The given key 'Aspire.Hosting.ApplicationModel.ProjectResource' was not present in the dictionary.
         at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
         at DockerComposeServiceResourceExtensions.ProcessValue(DockerComposeServiceResource resource, Object value) in
/_/src/Aspire.Hosting.Docker/DockerComposeServiceResourceExtensions.cs:line 22
         at Aspire.Hosting.Docker.DockerComposeServiceResource.AddEnvironmentVariablesAndCommandLineArgs(Service composeService) in
/_/src/Aspire.Hosting.Docker/DockerComposeServiceResource.cs:line 167
         at Aspire.Hosting.Docker.DockerComposeServiceResource.BuildComposeService() in /_/src/Aspire.Hosting.Docker/DockerComposeServiceResource.cs:line
79
         at Aspire.Hosting.Docker.DockerComposePublishingContext.WriteDockerComposeOutputAsync(DistributedApplicationModel model,
DockerComposeEnvironmentResource environment) in /_/src/Aspire.Hosting.Docker/DockerComposePublishingContext.cs:line 77
         at Aspire.Hosting.Docker.DockerComposePublishingContext.WriteModelAsync(DistributedApplicationModel model, DockerComposeEnvironmentResource
environment) in /_/src/Aspire.Hosting.Docker/DockerComposePublishingContext.cs:line 52
         at Aspire.Hosting.ApplicationModel.PublishingContext.WriteModelAsync(DistributedApplicationModel model) in
/_/src/Aspire.Hosting/Publishing/PublishingContext.cs:line 68
         at Aspire.Hosting.DistributedApplicationRunner.ExecuteAsync(CancellationToken stoppingToken) in
/_/src/Aspire.Hosting/DistributedApplicationRunner.cs:line 46

.NET Version info

9.0.300

Anything else?

Aspire version: 9.3.1+5bc26c78ff8c7be825d0ae33633a1ae9f1d64a67
Aspire.Hosting.Docker Version 9.3.1-preview.1.25305.6

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions