Git Merge Request #442: Dockerfile Convention Improvements. (open)

Merging...

Merged

Something went wrong. Please, merge manually

Checking if merge is possible...

Something went wrong. Please, merge manually

Dillon Walls wants to merge 2 commits from /u/dill0wn/allura/ to master, 2025-08-29

Our Dockerfile does not really follow docker conventions. Primarily, many extra steps are required to run on the image before it is usable; it's convention that you should more-or-less be able to docker run <image> and things will just happen.

Here are a few ideas and some WIP to make some small iterative improvements here

  • [Done] Move the contents of scripts/init-docker-dev.sh directly into the Dockerfile

Other Improvements
- To complete data initialization, the documentation says you should run docker compose run --rm taskd paster setup-app docker-dev.ini -- it's unclear whether this is required in order for Allura to run. Also whether we should add -e ALLURA_TEST_DATA=False to the invocation? Is this something that could also be moved directly into the Dockerfile
- The Dockerfile binds the source locally, when it's more customary to COPY or ADD the code into the image itself
- Many of the orchestrated containers shar configuration items that can be simplified if we take a different approach to volumes and binds.
- Update the documentation to reflect docker changes

Other things we could do
- Build images and deploy to repository (does apache have something on docker hub?)
- Leverage Multi-Stage builds
- build venv in a separate stage and copy the resulting virtual_env dir into the final image. This has the benefit of never contaminating the main image with all of the dev-dependencies required to build some of the wheels. Would also be worth slimming down the packages installed
- add-apt-repository installs python3.12 (or whatever the current ubuntu system python version is) regardless of which deadsnakes package you end up using, requiring you to delete the system python3.12 packages.

Commit Date  
[51ebef] (dw/docker-improved) by Dillon Walls Dillon Walls

fixup! remove necessity of init-docker-dev.sh, all setup in Dockerfile

2025-08-29 21:48:46 Tree
[e0d871] by Dillon Walls Dillon Walls

remove necessity of init-docker-dev.sh, all setup in Dockerfile

2025-08-29 18:10:27 Tree

Discussion


Log in to post a comment.