Skip to content

Refresh of dockerfiles with uv and other tweaks#5752

Open
bjester wants to merge 3 commits intolearningequality:unstablefrom
bjester:uv-docker
Open

Refresh of dockerfiles with uv and other tweaks#5752
bjester wants to merge 3 commits intolearningequality:unstablefrom
bjester:uv-docker

Conversation

@bjester
Copy link
Member

@bjester bjester commented Mar 11, 2026

Summary

  • Updates the base Debian version of the images to trixie, up from bookworm
  • Updates the base image to use the uv image based off the python-trixie image
  • Replaces node installation with far simpler COPY from the official node image (should build quicker)
  • Updates production image to use multi-stage build to produce the smallest image (production doesn't really need node.js)
  • Updates docker-compose.yml setup to have only one file, by moving the port exposures from docker-compose.alt.yml to the main file
  • Updates the Makefile for changes to the docker-compose.yml and resolves long-standing issue with docker-compose check
  • Updates the webpack.config.js to ensure the webpack devserver is accessible when running everything through docker (from 246f58e#diff-1fb26bc12ac780c7ad7325730ed09fc4c2c3d757c276c3dacc44bfe20faf166fR19-R78)

References

Follow up to #5719

Reviewer guidance

Development

  1. Run make dcbuild
  2. Verify the build completes
  3. Run docker compose up
  4. Run pnpm run devsetup in another terminal
  5. Open http://localhost:8080
  6. Verify you can load Studio and sign-in

Production

The production setup isn't really runnable, but you can ensure the image builds correctly, by replacing docker/Dockerfile.dev with docker/Dockerfile.prod in the docker-compose.yml. With a fewer other tweaks, I ran the server to verify it at least started.

AI usage

I used Codex to refactor the Dockerfiles, then refactored them myself and performed further edits and verifications.

Copy link
Member

@rtibbles rtibbles left a comment

Choose a reason for hiding this comment

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

I ran just the services using podman and the devserver independently, and that worked.
Then I ran podman compose up and that also seemed to run the devserver too (slightly contrary to the PR guidance - but it all seems to be working as intended and not breaking any workflows).

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.

2 participants