-
Notifications
You must be signed in to change notification settings - Fork 2.8k
fix 24.12 docker #7045
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
fix 24.12 docker #7045
Conversation
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.
Summary of Changes
Hello @zhyncs, 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 addresses a build issue in the Dockerfile for the 24.12 release. The core change involves adding the --break-system-packages
flag to various pip installation steps to ensure compatibility with newer Python environments or distributions where pip's behavior regarding system packages has changed.
Highlights
- Docker Build Fix: Added the
--break-system-packages
flag to severalpip install
commands within the Dockerfile to address potential conflicts with system-managed Python packages, likely resolving build issues for the 24.12 release.
Using Gemini Code Assist
The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
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 .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and 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 to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configureGemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
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.
Code Review
This pull request correctly addresses potential Docker build failures related to pip
's PEP 668 (externally managed environments) by adding the --break-system-packages
flag to pip install
commands. This is a standard and necessary workaround in many Docker contexts to allow pip
to manage packages in the system Python environment.
To improve future maintainability and clarity, consider adding a comment at the beginning of the Python package installation section in the Dockerfile, or near the first use of --break-system-packages
. Such a comment could briefly explain why this flag is used (e.g., # Using --break-system-packages to allow pip to manage packages in the system environment, per PEP 668 guidelines for containerized applications.
).
@@ -18,12 +18,12 @@ RUN echo 'tzdata tzdata/Areas select America' | debconf-set-selections \ | |||
&& apt clean | |||
|
|||
# For openbmb/MiniCPM models | |||
RUN pip3 install datamodel_code_generator | |||
RUN pip3 install datamodel_code_generator --break-system-packages |
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.
Adding --break-system-packages
is a necessary adjustment for installing Python packages with pip
in environments like this Docker container, especially with newer pip
versions that enforce PEP 668. This flag allows pip
to modify the system Python installation, which is a common practice in isolated Docker environments to ensure datamodel_code_generator
can be installed without conflict.
docker/Dockerfile
Outdated
|
||
WORKDIR /sgl-workspace | ||
|
||
ARG CUDA_VERSION | ||
RUN python3 -m pip install --upgrade pip setuptools wheel html5lib six \ | ||
RUN python3 -m pip install --upgrade pip setuptools wheel html5lib six --break-system-packages \ |
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.
@@ -33,19 +33,19 @@ RUN python3 -m pip install --upgrade pip setuptools wheel html5lib six \ | |||
export CUINDEX=124; \ | |||
elif [ "$CUDA_VERSION" = "11.8.0" ]; then \ | |||
export CUINDEX=118; \ | |||
python3 -m pip install --no-cache-dir sgl-kernel -i https://docs.sglang.ai/whl/cu118; \ | |||
python3 -m pip install --no-cache-dir sgl-kernel -i https://docs.sglang.ai/whl/cu118 --break-system-packages; \ |
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.
else \ | ||
echo "Unsupported CUDA version: $CUDA_VERSION" && exit 1; \ | ||
fi \ | ||
&& if [ "$CUDA_VERSION" = "12.4.1" ]; then \ | ||
python3 -m pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cu126; \ | ||
python3 -m pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cu126 --break-system-packages; \ |
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.
else \ | ||
python3 -m pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cu${CUINDEX}; \ | ||
python3 -m pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cu${CUINDEX} --break-system-packages; \ |
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.
Consistently using --break-system-packages
for this alternative torch
installation path (with cu${CUINDEX}
) is correct. It maintains the same strategy for allowing pip
to manage packages in the system Python environment within the Docker image, adhering to the common practice for PEP 668 workarounds.
fi \ | ||
&& cd sglang \ | ||
&& python3 -m pip --no-cache-dir install -e "python[${BUILD_TYPE}]" \ | ||
&& python3 -m pip --no-cache-dir install -e "python[${BUILD_TYPE}]" --break-system-packages \ |
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.
&& if [ "$CUDA_VERSION" = "12.8.1" ]; then \ | ||
python3 -m pip install nvidia-nccl-cu12==2.26.2.post1 --force-reinstall --no-deps; \ | ||
python3 -m pip install nvidia-nccl-cu12==2.26.2.post1 --force-reinstall --no-deps --break-system-packages; \ |
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.
Motivation
fix #7043
Modifications
Checklist