From 68a5147d2748d2d296a345d0e4d7837f36e7aa9f Mon Sep 17 00:00:00 2001 From: AJ Matthews Date: Thu, 26 Feb 2026 12:33:37 +0000 Subject: [PATCH 1/3] Fixed docker integration code to compile and run. --- .../docs/integrations/compute/docker.mdx | 37 ++++++++++++++----- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/frontend/src/content/docs/integrations/compute/docker.mdx b/src/frontend/src/content/docs/integrations/compute/docker.mdx index 10ffd5d46..6f983f59a 100644 --- a/src/frontend/src/content/docs/integrations/compute/docker.mdx +++ b/src/frontend/src/content/docs/integrations/compute/docker.mdx @@ -42,16 +42,25 @@ var builder = DistributedApplication.CreateBuilder(args); var compose = builder.AddDockerComposeEnvironment("compose"); var cache = builder.AddRedis("cache") - .PublishAsDockerComposeService(); + .PublishAsDockerComposeService((resource, service) => + { + service.Name = "redis"; + }); var api = builder.AddProject("api") .WithReference(cache) - .PublishAsDockerComposeService(); + .PublishAsDockerComposeService((resource, service) => + { + service.Name = "api"; + }); var web = builder.AddProject("web") .WithReference(cache) .WithReference(api) - .PublishAsDockerComposeService(); + .PublishAsDockerComposeService((resource, service) => + { + service.Name = "web"; + }); builder.Build().Run(); ``` @@ -221,10 +230,12 @@ Use `WithRemoteImageName` and `WithRemoteImageTag` to customize the image refere ```csharp title="C# — AppHost.cs" var builder = DistributedApplication.CreateBuilder(args); +#pragma warning disable ASPIREPIPELINE003 // WithRemoteImageName and WithRemoteImageTag are experimental APIs and may change in future releases. var api = builder.AddProject("api") - .PublishAsDockerComposeService() + .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithRemoteImageName("myorg/myapi") .WithRemoteImageTag("v1.0.0"); +#pragma warning restore ASPIREPIPELINE003 // After adding all resources, run the app... ``` @@ -236,8 +247,9 @@ For more complex scenarios, use `WithImagePushOptions` to register a callback th ```csharp title="C# — AppHost.cs" var builder = DistributedApplication.CreateBuilder(args); +#pragma warning disable ASPIREPIPELINES003 // WithImagePushOptions is an experimental API and may change in future releases. var api = builder.AddProject("api") - .PublishAsDockerComposeService() + .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithImagePushOptions(context => { // Customize the image name based on the resource @@ -249,6 +261,7 @@ var api = builder.AddProject("api") var version = Environment.GetEnvironmentVariable("APP_VERSION") ?? "latest"; context.Options.RemoteImageTag = version; }); +#pragma warning restore ASPIREPIPELINE003 // After adding all resources, run the app... ``` @@ -258,8 +271,9 @@ For asynchronous operations (such as retrieving configuration from external sour ```csharp title="C# — AppHost.cs" var builder = DistributedApplication.CreateBuilder(args); +#pragma warning disable ASPIREPIPELINE003 // WithImagePushOptions is an experimental API and may change in future releases. var api = builder.AddProject("api") - .PublishAsDockerComposeService() + .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithImagePushOptions(async context => { // Retrieve configuration asynchronously @@ -267,6 +281,7 @@ var api = builder.AddProject("api") context.Options.RemoteImageName = config.ImageName; context.Options.RemoteImageTag = config.ImageTag; }); +#pragma warning restore ASPIREPIPELINE003 // After adding all resources, run the app... ``` @@ -297,7 +312,7 @@ var registry = builder.AddContainerRegistry( // Associate resources with the registry var api = builder.AddProject("api") - .PublishAsDockerComposeService() + .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithContainerRegistry(registry); // After adding all resources, run the app... @@ -313,9 +328,10 @@ For more flexible configuration, especially in CI/CD pipelines, you can use para var builder = DistributedApplication.CreateBuilder(args); // Define parameters from configuration (reads from environment variables) -var registryEndpoint = builder.AddParameterFromConfiguration("REGISTRY_ENDPOINT"); -var registryRepository = builder.AddParameterFromConfiguration("REGISTRY_REPOSITORY"); +var registryEndpoint = builder.AddParameterFromConfiguration("registryEndpoint", "REGISTRY_ENDPOINT"); +var registryRepository = builder.AddParameterFromConfiguration("registryRepository", "REGISTRY_REPOSITORY"); +#pragma warning disable ASPIRECOMPUTE003 // AddContainerRegistry and WithContainerRegistry are experimental APIs and may change in future releases. // Add registry with parameters var registry = builder.AddContainerRegistry( "my-registry", @@ -324,8 +340,9 @@ var registry = builder.AddContainerRegistry( ); var api = builder.AddProject("api") - .PublishAsDockerComposeService() + .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithContainerRegistry(registry); +#pragma warning restore ASPIRECOMPUTE003 ``` You can then provide parameter values via environment variables: From dfe9a9ea042da3cbd82ac00b40fbad8f5fc3f231 Mon Sep 17 00:00:00 2001 From: AJ Matthews Date: Thu, 26 Feb 2026 13:00:28 +0000 Subject: [PATCH 2/3] Implemented feedback from @Copilot. --- .../docs/integrations/compute/docker.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/frontend/src/content/docs/integrations/compute/docker.mdx b/src/frontend/src/content/docs/integrations/compute/docker.mdx index 6f983f59a..958f76472 100644 --- a/src/frontend/src/content/docs/integrations/compute/docker.mdx +++ b/src/frontend/src/content/docs/integrations/compute/docker.mdx @@ -43,23 +43,23 @@ var compose = builder.AddDockerComposeEnvironment("compose"); var cache = builder.AddRedis("cache") .PublishAsDockerComposeService((resource, service) => - { - service.Name = "redis"; - }); + { + service.Name = "redis"; + }); var api = builder.AddProject("api") .WithReference(cache) .PublishAsDockerComposeService((resource, service) => - { - service.Name = "api"; - }); + { + service.Name = "api"; + }); var web = builder.AddProject("web") .WithReference(cache) .WithReference(api) .PublishAsDockerComposeService((resource, service) => - { - service.Name = "web"; + { + service.Name = "web"; }); builder.Build().Run(); @@ -230,12 +230,12 @@ Use `WithRemoteImageName` and `WithRemoteImageTag` to customize the image refere ```csharp title="C# — AppHost.cs" var builder = DistributedApplication.CreateBuilder(args); -#pragma warning disable ASPIREPIPELINE003 // WithRemoteImageName and WithRemoteImageTag are experimental APIs and may change in future releases. +#pragma warning disable ASPIREPIPELINES003 // WithRemoteImageName and WithRemoteImageTag are experimental APIs and may change in future releases. var api = builder.AddProject("api") .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithRemoteImageName("myorg/myapi") .WithRemoteImageTag("v1.0.0"); -#pragma warning restore ASPIREPIPELINE003 +#pragma warning restore ASPIREPIPELINES003 // After adding all resources, run the app... ``` @@ -261,7 +261,7 @@ var api = builder.AddProject("api") var version = Environment.GetEnvironmentVariable("APP_VERSION") ?? "latest"; context.Options.RemoteImageTag = version; }); -#pragma warning restore ASPIREPIPELINE003 +#pragma warning restore ASPIREPIPELINES003 // After adding all resources, run the app... ``` @@ -271,7 +271,7 @@ For asynchronous operations (such as retrieving configuration from external sour ```csharp title="C# — AppHost.cs" var builder = DistributedApplication.CreateBuilder(args); -#pragma warning disable ASPIREPIPELINE003 // WithImagePushOptions is an experimental API and may change in future releases. +#pragma warning disable ASPIREPIPELINES003 // WithImagePushOptions is an experimental API and may change in future releases. var api = builder.AddProject("api") .PublishAsDockerComposeService((resource, service) => { service.Name = "api"; }) .WithImagePushOptions(async context => @@ -281,7 +281,7 @@ var api = builder.AddProject("api") context.Options.RemoteImageName = config.ImageName; context.Options.RemoteImageTag = config.ImageTag; }); -#pragma warning restore ASPIREPIPELINE003 +#pragma warning restore ASPIREPIPELINES003 // After adding all resources, run the app... ``` From 42178ee1f266d4b76aeae6576daee0b535f1d96e Mon Sep 17 00:00:00 2001 From: David Pine Date: Thu, 26 Feb 2026 08:44:25 -0600 Subject: [PATCH 3/3] Apply suggestions from code review --- .../src/content/docs/integrations/compute/docker.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/content/docs/integrations/compute/docker.mdx b/src/frontend/src/content/docs/integrations/compute/docker.mdx index 958f76472..1f743d5d6 100644 --- a/src/frontend/src/content/docs/integrations/compute/docker.mdx +++ b/src/frontend/src/content/docs/integrations/compute/docker.mdx @@ -43,24 +43,24 @@ var compose = builder.AddDockerComposeEnvironment("compose"); var cache = builder.AddRedis("cache") .PublishAsDockerComposeService((resource, service) => - { + { service.Name = "redis"; - }); + }); var api = builder.AddProject("api") .WithReference(cache) .PublishAsDockerComposeService((resource, service) => - { + { service.Name = "api"; - }); + }); var web = builder.AddProject("web") .WithReference(cache) .WithReference(api) .PublishAsDockerComposeService((resource, service) => - { + { service.Name = "web"; - }); + }); builder.Build().Run(); ```