# [Docs] Document WithContainerFiles API ## Summary Aspire 9.4 introduced `WithContainerFiles` for copying files into containers with permission control. Not documented outside what's-new. ## What's Missing ### Core API ```csharp var myContainer = builder.AddContainer("myapp", "myapp:latest") // Simple file copying .WithContainerFiles("/app/config", "./config-files") // With ownership .WithContainerFiles("/app/data", "./data", defaultOwner: 1000, defaultGroup: 1000) // With permissions .WithContainerFiles("/app/scripts", "./scripts", umask: UnixFileMode.UserRead | UnixFileMode.UserWrite); ``` ### Dynamic File Generation ```csharp var dynamicContainer = builder.AddContainer("worker", "worker:latest") .WithContainerFiles("/app/runtime-config", async (context, ct) => { var configFile = new ContainerFileSystemItem { Name = "app.json", Contents = JsonSerializer.SerializeToUtf8Bytes(new { Environment = "Production" }) }; return new[] { configFile }; }); ``` ## Suggested Content 1. **Static file mounting** - copying directories into containers 2. **File permissions** - owner, group, umask 3. **Dynamic file generation** - callback-based content creation 4. **Use cases** - config files, certificates, init scripts 5. **Examples** - nginx config, app settings, SSL certs ## Why It Matters Configuration file mounting is a common need. Without docs, users resort to complex volume mounts. ## Labels `documentation`, `area-docs`, `containers`