Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 27 additions & 10 deletions src/frontend/src/content/docs/integrations/compute/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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<Projects.Api>("api")
.WithReference(cache)
.PublishAsDockerComposeService();
.PublishAsDockerComposeService((resource, service) =>
{
service.Name = "api";
});

var web = builder.AddProject<Projects.Web>("web")
.WithReference(cache)
.WithReference(api)
.PublishAsDockerComposeService();
.PublishAsDockerComposeService((resource, service) =>
{
service.Name = "web";
});

builder.Build().Run();
```
Expand Down Expand Up @@ -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 ASPIREPIPELINES003 // WithRemoteImageName and WithRemoteImageTag are experimental APIs and may change in future releases.
var api = builder.AddProject<Projects.Api>("api")
.PublishAsDockerComposeService()
.PublishAsDockerComposeService((resource, service) => { service.Name = "api"; })
.WithRemoteImageName("myorg/myapi")
.WithRemoteImageTag("v1.0.0");
#pragma warning restore ASPIREPIPELINES003

// After adding all resources, run the app...
```
Expand All @@ -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<Projects.Api>("api")
.PublishAsDockerComposeService()
.PublishAsDockerComposeService((resource, service) => { service.Name = "api"; })
.WithImagePushOptions(context =>
{
// Customize the image name based on the resource
Expand All @@ -249,6 +261,7 @@ var api = builder.AddProject<Projects.Api>("api")
var version = Environment.GetEnvironmentVariable("APP_VERSION") ?? "latest";
context.Options.RemoteImageTag = version;
});
#pragma warning restore ASPIREPIPELINES003

// After adding all resources, run the app...
```
Expand All @@ -258,15 +271,17 @@ For asynchronous operations (such as retrieving configuration from external sour
```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<Projects.Api>("api")
.PublishAsDockerComposeService()
.PublishAsDockerComposeService((resource, service) => { service.Name = "api"; })
.WithImagePushOptions(async context =>
{
// Retrieve configuration asynchronously
var config = await LoadConfigurationAsync();
context.Options.RemoteImageName = config.ImageName;
context.Options.RemoteImageTag = config.ImageTag;
});
#pragma warning restore ASPIREPIPELINES003

// After adding all resources, run the app...
```
Expand Down Expand Up @@ -297,7 +312,7 @@ var registry = builder.AddContainerRegistry(

// Associate resources with the registry
var api = builder.AddProject<Projects.Api>("api")
.PublishAsDockerComposeService()
.PublishAsDockerComposeService((resource, service) => { service.Name = "api"; })
.WithContainerRegistry(registry);

// After adding all resources, run the app...
Expand All @@ -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",
Expand All @@ -324,8 +340,9 @@ var registry = builder.AddContainerRegistry(
);

var api = builder.AddProject<Projects.Api>("api")
.PublishAsDockerComposeService()
.PublishAsDockerComposeService((resource, service) => { service.Name = "api"; })
.WithContainerRegistry(registry);
#pragma warning restore ASPIRECOMPUTE003
```

You can then provide parameter values via environment variables:
Expand Down
Loading