feat: add docker:publish command [sc-636] - #24
Conversation
Adds `saucebase docker:publish` so Docker files can be published (or refreshed) in an existing app without running the full install flow. Existing files prompt before being overwritten; --force skips the prompt and --ssl=no publishes the plain-HTTP nginx config. DockerEnvironment::publishStubs() now delegates to the command so there is a single copy path. It calls it non-interactively and does not pass install's --force through, so re-running install still keeps existing Docker files. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThe change adds ChangesDocker publication
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant DockerEnvironment
participant ConsoleApplication
participant PublishDockerCommand
participant ApplicationFilesystem
DockerEnvironment->>ConsoleApplication: invokes docker:publish with path and SSL mode
ConsoleApplication->>PublishDockerCommand: dispatches command
PublishDockerCommand->>ApplicationFilesystem: publishes Docker stubs
PublishDockerCommand->>ApplicationFilesystem: selects nginx SSL or plain-HTTP configuration
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 PHPStan (2.2.8)Composer install failed: the CodeRabbit sandbox could not download one or more dependencies. Instead, run PHPStan in a CI/CD pipeline where you can use custom packages — our pipeline remediation tool can use the PHPStan output from your CI/CD pipeline. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Adds
saucebase docker:publishso the Docker files can be published (or refreshed) into an existing Saucebase app without running the full install flow.--path=target app directory (defaults to cwd)--forceskips the prompt--ssl=nopublishes the plain-HTTP nginx configDockerEnvironment::publishStubs()now delegates to the command, so there is a single copy path. It calls it non-interactively (the confirm defaults to "no", keeping existing files) and deliberately does not pass install's--forcethrough — re-running install never clobbers a user's Docker files.Tests
New
PublishDockerCommandTest: publishes all five stubs, keeps existing files,--forceoverwrites, and both SSL nginx variants. Full suite: 202 tests / 396 assertions passing.Story: https://app.shortcut.com/saucebase/story/636
🤖 Generated with Claude Code
Summary by CodeRabbit
docker:publishcommand to publish Docker configuration files to an application directory.