Skip to content

Conversation

@matthewzhaocc
Copy link

Currently, when you look into the docker image provided upstream, it creates /var/www/html/plugins/plugins instead of the correct /var/www/html/plugins folder symlinked to /pelican-data/plugins.

/var/www/html $ ls -alh /var/www/html/plugins/
total 12K    
drwxr-x---    1 root     www-data    4.0K Dec 19 23:44 .
drwxr-x---    1 root     www-data    4.0K Dec 19 23:44 ..
lrwxrwxrwx    1 root     root          21 Dec 19 23:44 plugins -> /pelican-data/plugins

@matthewzhaocc matthewzhaocc changed the title Fix Plugins Symlink Fix Plugins Symlink in Dockerfile Dec 25, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 25, 2025

📝 Walkthrough

Walkthrough

Two Dockerfiles updated to replace the symbolic link creation command from ln -s to ln -sT for the plugins directory path. The -T flag alters how the linker handles pre-existing destination directories.

Changes

Cohort / File(s) Summary
Symbolic Link Behavior Change
Dockerfile, Dockerfile.dev
Modified symbolic link creation from ln -s to ln -sT for /pelican-data/plugins/var/www/html/plugins. The -T flag treats the destination as a regular file rather than a directory, causing link creation to fail if the destination already exists as a directory instead of creating the link inside it.

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: fixing the plugins symlink creation in Dockerfile files.
Description check ✅ Passed The description explains the problem (nested plugins directory/symlink structure) and the solution (using ln -sT), which aligns with the changeset modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

📜 Recent review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9af608f and e87dccf.

📒 Files selected for processing (2)
  • Dockerfile
  • Dockerfile.dev
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-12-24T09:21:52.260Z
Learnt from: QuintenQVD0
Repo: pelican-dev/panel PR: 2034
File: Dockerfile.base:12-12
Timestamp: 2025-12-24T09:21:52.260Z
Learning: Ensure that Dockerfiles install git at runtime where required for plugin system dependency installation. Update Dockerfile.base and any other Dockerfiles that build runtime images to include git in the runtime dependencies (not just for build-time), so plugin installation steps function correctly in the container.

Applied to files:

  • Dockerfile.dev
🔇 Additional comments (2)
Dockerfile.dev (1)

90-90: Verify that /var/www/html/plugins doesn't exist when this command runs.

Same concern as in Dockerfile: the -T flag prevents nested symlinks but will cause build failure if /var/www/html/plugins exists as a directory. Ensure the plugins directory is either:

  • Excluded from COPY operations (lines 73-74)
  • Removed before the symlink creation
  • Or use ln -sfT to force replacement

The verification script provided for Dockerfile will confirm whether the plugins directory exists in the source code.

Dockerfile (1)

86-86: [No review comment provided]


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 25, 2025

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@matthewzhaocc
Copy link
Author

I have read the CLA Document and I hereby sign the CLA

@parkervcp
Copy link
Contributor

parkervcp commented Dec 30, 2025

This wont work. You need to remove the plugins folder as was done in #2021

image

-T also treats it as a file and not a dir which may also be broken. I have validated this works fine with the T option

parkervcp added a commit to parkervcp/panel that referenced this pull request Jan 3, 2026
Fixes being able to install plugins
Resolves pelican-dev#2024
Resolves pelican-dev#2025

Fixes symlink for plugins

Adds symlink for server icons
Resolves pelican-dev#2054

Fixes loading environment variables
Resolves pelican-dev#2056

Integrates pelican-dev#2051 pelican-dev#2034 pelican-dev#2045 into a single PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants