Update docker-compose.mysql.yml - #224
Conversation
📝 WalkthroughWalkthroughUpdated the Docker Compose configuration for the Koel service to mount the image storage volume to the web-accessible public directory instead of the internal Laravel storage directory, changing the container mount path from ChangesDocker Compose Storage Configuration
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docker-compose.mysql.yml`:
- Line 16: The compose mount uses the wrong target path causing Koel to
read/write images in the wrong place; update the volume mapping for
image_storage so it mounts to Koel’s internal storage path
/var/www/html/storage/app/public/images (replace the current
/var/www/html/public/storage/images target), ensuring the image_storage volume
name remains unchanged and the service that declares this volume continues to
reference image_storage.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| volumes: | ||
| - music:/music | ||
| - image_storage:/var/www/html/storage/app/public/images | ||
| - image_storage:/var/www/html/public/storage/images |
There was a problem hiding this comment.
Restore the image_storage mount target to Koel’s internal storage path.
This change points the volume to /var/www/html/public/storage/images, but the image and init flow persist/read images at /var/www/html/storage/app/public/images. Mounting the wrong target breaks the storage contract and can cause unreadable/unwritable image storage or lost persistence behavior after init/migrations.
Suggested fix
- - image_storage:/var/www/html/public/storage/images
+ - image_storage:/var/www/html/storage/app/public/imagesBased on learnings: Dockerfile creates/declares /var/www/html/storage/app/public/images as the image-storage volume path, and CHANGELOG documents this exact compose mount target for upgrades.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - image_storage:/var/www/html/public/storage/images | |
| - image_storage:/var/www/html/storage/app/public/images |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docker-compose.mysql.yml` at line 16, The compose mount uses the wrong target
path causing Koel to read/write images in the wrong place; update the volume
mapping for image_storage so it mounts to Koel’s internal storage path
/var/www/html/storage/app/public/images (replace the current
/var/www/html/public/storage/images target), ensuring the image_storage volume
name remains unchanged and the service that declares this volume continues to
reference image_storage.
|
Thanks for reporting this — you found a real bug, and it turned out to be worse than the compose file. koel's release archive ships That resolves nowhere in the container, so koel can neither read nor write uploaded images and Fixed in #229 by repairing the link at build time, which covers all three compose files and any hand-rolled Closing this in favour of #229. Thank you for the report. |
|
Correcting something I got wrong above. I wrote that if (file_exists($link) && ! $this->isRemovableSymlink($link, $this->option('force'))) {
// skipped for a dangling link, since file_exists() is false
}
if (is_link($link)) {
$this->laravel->make('files')->delete($link);
}So None of this changes the fix or the diagnosis of the underlying bug — the archive genuinely ships a link into the release runner's filesystem. I just described the repair path incorrectly. |
Corrected path in container to match what Koel is expecting as mountpoint:
koel:doctor
Image storage directory public/storage/images is not readable/writable ERRORSummary by CodeRabbit