fix(pelican): use alpine for install container to prevent stuck installation#358
fix(pelican): use alpine for install container to prevent stuck installation#358
Conversation
…llation Wings does not override the Docker ENTRYPOINT when running the installation container (pelican-dev/wings server/install.go). Since the OCAP image has a custom entrypoint that checks for $STARTUP — which Wings also passes during installation — the entrypoint started the OCAP server instead of executing the install script. The server ran indefinitely, so installation never completed. Switch to a plain alpine:3.23 image with no custom ENTRYPOINT so the install script runs directly. Also add chown -R 999:999 /mnt/server to fix file ownership. The install container runs as root but the server container runs as UID 999, so without the chown the server cannot write to its data directories. See pelican-dev/panel#2098
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request resolves critical issues preventing successful server installation and operation for Pelican Wings. It addresses a problem where the installation process would get stuck indefinitely by switching to a minimal Alpine Linux container, thereby avoiding an unintended ENTRYPOINT execution. Additionally, it fixes a file permission error by ensuring that directories created during installation are correctly owned by the server's user ID, allowing the server to write to its data directories. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request addresses a stuck installation issue by switching to an Alpine-based installation container and corrects file ownership problems. The approach is sound. However, a critical issue has been identified: the specified Alpine image version 3.23 does not exist, which will cause the installation to fail. This appears to be a typo that needs correction.
Summary
ghcr.io/ocap2/web:fulltoalpine:3.23chown -R 999:999 /mnt/serverto fix file ownership after directory creationProblem
Pelican Wings does not override the Docker
ENTRYPOINTwhen running the installation container (source). It only setsCmd:Since the OCAP image has
ENTRYPOINT ["/entrypoint.sh"], and Wings passesSTARTUPin the environment during installation, the entrypoint detected Pelican mode and raneval "$STARTUP"— starting the OCAP server instead of the install script. The server ran indefinitely, so installation never completed and the Panel stayed stuck on "Installing".Additionally, the install container runs as root, creating directories owned by
root:root. The server container runs as UID 999, so it cannot write to those directories (pelican-dev/panel#2098).Test plan
/home/container/data,/home/container/db,/home/container/maps