Skip to content
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: docker-compose-image-tag fails to start #31606

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

mistercrunch
Copy link
Member

@mistercrunch mistercrunch commented Dec 23, 2024

Recently I did some work to use uv pip install in place of plain pip in our docker images. This made builds significantly faster, but broke compatibility between some docker compose setups.

The issue is around the fact that docker-compose-image-tag mounts the local, newer, docker bootstrap scripts into the image, and those have evolve to use uv, which isn't installed in the image.

One option would be to not mount the docker folder and use what's in the image, but I believe some of the script may have changed names or location, and docker-compose-image-tag specifies their location as it passes arguments to them.

In any case, and at least for now, I decided to simply conditionally use uv or plain pip in the docker scripts based on what's installed in the image.

Also added a CI step to make sure docker compose -f docker-compose-image-tag.yml up works.

Closes #31600

Recently I did some work to use `uv pip install` in place of plain `pip` in our docker images. This made builds significantly faster, but broke compatibility between some docker compose setups.

The issue is around the fact that `docker-compose-image-tag` mounts the local, newer, docker bootstrap scripts into the image, and those have evolve to use `uv`, which isn't installed in the image.

One option would be to not mount the docker folder and use what's in the image, but I believe some of the script may have changed names or location, and `docker-compose-image-tag` specifies their location as it passes arguments to them.

In any case, and at least for now, I decided to simply conditionally use uv or plain pip in the docker scripts based on what's installed in the image.

Also added a CI step to make sure `docker compose -f docker-compose-image-tag.yml up` works.
@github-actions github-actions bot added the github_actions Pull requests that update GitHub Actions code label Dec 23, 2024
@dosubot dosubot bot added the install:docker Installation - docker container label Dec 23, 2024
Copy link

@korbit-ai korbit-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review by Korbit AI

Korbit automatically attempts to detect when you fix issues in new commits.
Category Issue Fix Detected
Functionality Missing pip fallback in DEV_MODE ▹ view
Files scanned
File Path Reviewed
docker/docker-bootstrap.sh

Explore our documentation to understand the languages and file types we support and the files we ignore.

Need a new review? Comment /korbit-review on this PR and I'll review your latest changes.

Korbit Guide: Usage and Customization

Interacting with Korbit

  • You can manually ask Korbit to review your PR using the /korbit-review command in a comment at the root of your PR.
  • You can ask Korbit to generate a new PR description using the /korbit-generate-pr-description command in any comment on your PR.
  • Too many Korbit comments? I can resolve all my comment threads if you use the /korbit-resolve command in any comment on your PR.
  • Chat with Korbit on issues we post by tagging @korbit-ai in your reply.
  • Help train Korbit to improve your reviews by giving a 👍 or 👎 on the comments Korbit posts.

Customizing Korbit

  • Check out our docs on how you can make Korbit work best for you and your team.
  • Customize Korbit for your organization through the Korbit Console.

Current Korbit Configuration

General Settings
Setting Value
Review Schedule Automatic excluding drafts
Max Issue Count 10
Automatic PR Descriptions
Issue Categories
Category Enabled
Naming
Database Operations
Documentation
Logging
Error Handling
Systems and Environment
Objects and Data Structures
Readability and Maintainability
Asynchronous Processing
Design Patterns
Third-Party Libraries
Performance
Security
Functionality

Feedback and Support

Note

Korbit Pro is free for open source projects 🎉

Looking to add Korbit to your team? Get started with a free 2 week trial here

Comment on lines 22 to 27
if [ "$DEV_MODE" == "true" ]; then
echo "Reinstalling the app in editable mode"
uv pip install -e .
if command -v uv > /dev/null 2>&1; then
echo "Reinstalling the app in editable mode"
uv pip install -e .
fi
fi
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing pip fallback in DEV_MODE category Functionality

Tell me more
What is the issue?

When UV is not available in DEV_MODE, the script silently skips the installation without falling back to regular pip or warning the user.

Why this matters

This could lead to missing dependencies in development environments where UV is not available, potentially causing runtime issues.

Suggested change

Add pip fallback:
if [ "$DEV_MODE" == "true" ]; then
echo "Reinstalling the app in editable mode"
if command -v uv > /dev/null 2>&1; then
uv pip install -e .
else
pip install -e .
fi
fi

Chat with Korbit by mentioning @korbit-ai, and give a 👍 or 👎 to help Korbit improve your reviews.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't need to reinstall in dev mode where uv is not present as it was the default install in that era

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
github_actions Pull requests that update GitHub Actions code install:docker Installation - docker container preset-io size/M
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No virtual environment found; run uv venv to create an environment
1 participant