-
-
Notifications
You must be signed in to change notification settings - Fork 2
refactor: Update environment configuration and initialization script for improved user/group handling and permissions setup. #113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…for improved user/group handling and permissions setup.
Warning Rate limit exceeded@terabytesoftw has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 19 minutes and 4 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (2)
""" WalkthroughThis update refines Docker and environment configuration for a FrankenPHP-based Yii2 application. It clarifies and expands environment variables for user and group IDs, adjusts Dockerfile commands to set user/group permissions and Composer cache directories, updates volume mount paths for Composer cache, and enhances the initialization script for correct permissions and Composer execution. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Docker Compose
participant FrankenPHP Container
participant Init Script
participant Composer
User->>Docker Compose: Start services with .env variables
Docker Compose->>FrankenPHP Container: Launch container
FrankenPHP Container->>Init Script: Run initialization script
Init Script->>FrankenPHP Container: Create Caddy and cache directories with correct ownership
Init Script->>Composer: Execute Composer install as www-data with cache env vars
Composer-->>Init Script: Dependencies installed
Init Script-->>FrankenPHP Container: Initialization complete
Possibly related PRs
Poem
""" ✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #113 +/- ##
===========================================
Coverage 100.00% 100.00%
Complexity 36 36
===========================================
Files 23 23
Lines 621 621
===========================================
Hits 621 621 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (2)
.env (1)
2-8
:GROUP_NAME
is set but never consumed – consider pruning or wiring it inOnly
USER_ID
/GROUP_ID
are referenced in the Dockerfile.
GROUP_NAME
(andUSER_NAME
) are passed as build args but are not used afterwards, so the variable is effectively dead weight. Either:
- Remove the unused variables to avoid confusion, or
- Update the Dockerfile to make use of them (e.g.
usermod -l "$USER_NAME"
/groupmod -n "$GROUP_NAME"
).Keeping the env file minimal helps prevent drift between documentation and behaviour.
docker/init.sh (1)
11-16
: Race-free directory creation: useinstall -d
instead of separatemkdir
/chown
install -d -o www-data -g www-data -m 755 /data/caddy/locks /config/caddy
creates directories atomically with correct ownership and permissions, avoiding a brief window where they are owned by root.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
.env
(1 hunks)docker-compose.frankenphp.yml
(1 hunks)docker/frankenphp/Dockerfile
(1 hunks)docker/init.sh
(2 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: terabytesoftw
PR: yii2-extensions/app-basic#102
File: docker/apache/Dockerfile:0-0
Timestamp: 2025-07-10T13:59:10.805Z
Learning: In docker/apache/Dockerfile, the queue.conf copy command is intentionally commented out because yii2-queue is optional. Users should uncomment the line `COPY docker/apache/supervisord/conf.d/queue.conf /etc/supervisor/conf.d/queue.conf` only if they install yii2-queue.
docker-compose.frankenphp.yml (1)
Learnt from: terabytesoftw
PR: yii2-extensions/app-basic#102
File: docker/apache/Dockerfile:0-0
Timestamp: 2025-07-10T13:59:10.805Z
Learning: In docker/apache/Dockerfile, the queue.conf copy command is intentionally commented out because yii2-queue is optional. Users should uncomment the line `COPY docker/apache/supervisord/conf.d/queue.conf /etc/supervisor/conf.d/queue.conf` only if they install yii2-queue.
.env (1)
Learnt from: terabytesoftw
PR: yii2-extensions/app-basic#102
File: docker/apache/Dockerfile:0-0
Timestamp: 2025-07-10T13:59:10.805Z
Learning: In docker/apache/Dockerfile, the queue.conf copy command is intentionally commented out because yii2-queue is optional. Users should uncomment the line `COPY docker/apache/supervisord/conf.d/queue.conf /etc/supervisor/conf.d/queue.conf` only if they install yii2-queue.
docker/init.sh (1)
Learnt from: terabytesoftw
PR: yii2-extensions/app-basic#102
File: docker/apache/Dockerfile:0-0
Timestamp: 2025-07-10T13:59:10.805Z
Learning: In docker/apache/Dockerfile, the queue.conf copy command is intentionally commented out because yii2-queue is optional. Users should uncomment the line `COPY docker/apache/supervisord/conf.d/queue.conf /etc/supervisor/conf.d/queue.conf` only if they install yii2-queue.
docker/frankenphp/Dockerfile (1)
Learnt from: terabytesoftw
PR: yii2-extensions/app-basic#102
File: docker/apache/Dockerfile:0-0
Timestamp: 2025-07-10T13:59:10.805Z
Learning: In docker/apache/Dockerfile, the queue.conf copy command is intentionally commented out because yii2-queue is optional. Users should uncomment the line `COPY docker/apache/supervisord/conf.d/queue.conf /etc/supervisor/conf.d/queue.conf` only if they install yii2-queue.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: codeception / PHP 8.3-windows-latest
- GitHub Check: codeception / PHP 8.1-windows-latest
- GitHub Check: codeception / PHP 8.2-windows-latest
- GitHub Check: test-frankenphp
- GitHub Check: test-frankenphp
🔇 Additional comments (1)
docker/frankenphp/Dockerfile (1)
48-49
: UID/GID mutation may leave system dirs with stale ownership – verify before releaseAfter
usermod -u ${USER_ID}
the numeric id ofwww-data
changes, but any files already created in earlier layers (e.g./var/www
, PHP extension caches) keep the old id and become orphaned (???
).
Consider runningfind / -user 33 -exec chown -h www-data:www-data {} +
(where 33 is the old id) inside the same RUN to realign ownership.Otherwise the container might silently fall back to root for write operations.
…e directory with proper ownership.
…rectory and ensure proper access for www-data.
…fication for security.
…js installation and process management.
…ipt verification steps.
…reamline environment variable usage.
…cker-compose configuration.
Summary by CodeRabbit