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

config: dockerize repository #6161

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open

config: dockerize repository #6161

wants to merge 1 commit into from

Conversation

hom3mad3
Copy link
Contributor

@hom3mad3 hom3mad3 commented Feb 26, 2025

Dockerize Repository

This was implemented as an exploration to solve recurring environment issues without impacting our sprint commitments. The PR is intended to start a discussion about improving our development workflow.

Motivation

This PR introduces Docker support to solve persistent development environment challenges our team has been facing:

  1. Cross-Platform Consistency: Team members on macOS and Windows regularly encounter setup issues that Linux users don't face, leading to lost development time
  2. Python Version Management: We've had recurring problems with team members running different Python versions
  3. Dependency Isolation: Ensuring everyone has the exact same environment with all dependencies correctly installed

Implementation Details

  • Docker configuration based on our existing Makefile structure
  • Creates a consistent, isolated environment that works identically across all operating systems
  • Preserves existing workflows while adding Docker as an alternative option

Benefits

  • Reduced Onboarding Time: New team members can be productive in minutes rather than potentially hours
  • "Works on My Machine" Elimination: All developers work in identical environments
  • CI/CD Alignment: Development environment matches CI/CD environment more closely
  • Version Locking: Python version and all dependencies locked to exact versions
  • Optional Adoption: Can be used alongside existing setup methods (not forcing anyone to change workflow)

TODO / Discussion Points

  • How to handle Makefile linting requirements during Docker builds
  • Virtual environment interaction with containerized environment
  • Making sure it matches our production environments
  • Having the production db images, so we are testing with real content
  • Testing procedures to validate Docker implementation

Next Steps

I'd appreciate everyone running a quick test of this setup to validate it works across our various development environments.

retries: 5

redis:
image: redis:alpine
Copy link
Contributor Author

Choose a reason for hiding this comment

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

normal install was too big, not sure if we have special needs or if alpine is good enough?

Choose a reason for hiding this comment

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

Yeah I'm curious if for our apps we would run into issues if we're dev-alpine prod-ubuntu. I guess if it builds then for now the answer is no? Would we need (or want) to dockerize in production at this point, guessing it's less work to just use this for dev for now?

@hom3mad3 hom3mad3 added Prio: Low fix when there is time Status: Decision Needed Issues that are blocked because decision is needed labels Feb 27, 2025
@partizipation
Copy link

Impacts PR for specifying python version in adhocracy plus (in a good way): #2993

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prio: Low fix when there is time Status: Decision Needed Issues that are blocked because decision is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants