-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Streamlined and added CI steps for docker compose #2207
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
Conversation
df2a86e to
e44015b
Compare
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.
Pull Request Overview
This PR streamlines the Docker development setup by improving the initialization process and adding comprehensive test execution via Docker. The changes simplify the dev entrypoint script, reorganize database initialization, and provide clearer documentation for Docker-based development workflows.
- Moved database initialization logic from the dev entrypoint to dedicated initialization scripts
- Added a new Makefile target for resetting local development data
- Enhanced GitHub Actions workflow to run tests via Docker Compose
Reviewed Changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| docker-entrypoint.dev.sh | Simplified by removing database initialization commands that are now handled elsewhere |
| docker-entrypoint-initdb.d/02_trac_schema.sh | New script to handle Trac database schema initialization during container startup |
| docker-compose.yml | Updated volume mounts to use the new initialization directory structure |
| README.rst | Enhanced Docker documentation with clearer step-by-step instructions and additional usage examples |
| Makefile | Added reset-local-db target to consolidate database reset commands |
| .github/workflows/docker-test-build.yml | Added Docker Compose setup and test execution for the tests.txt matrix |
| .dockerignore | New file to exclude unnecessary directories from Docker build context |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
e44015b to
1b45f5a
Compare
1b45f5a to
0b3585d
Compare
|
Hi, @easherma! Thanks again for your helping improving the Docker setup at the sprints. Would you be up for giving this a review when you have a moment? No rush. |
ulgens
left a comment
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.
I added a small comment about the migrate command call, but other than it looks nice 🌻
|
@tobiasmcnulty makes sense to me. I think you need to rebase and resolve conflicts though. Once that is done, I think should be ready for approval. |
| - if: matrix.req_file != 'tests.txt' | ||
| name: Test docker image build (${{ matrix.req_file }}) | ||
| uses: docker/build-push-action@v6 | ||
| with: | ||
| context: . | ||
| push: false | ||
| build-args: | | ||
| REQ_FILE=requirements/${{ matrix.req_file }} |
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.
For production, we just build the image, and then nothing else? 🤔
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.
I think just building the image will be a weak test (and burn CI minutes). Since we are building the image, we might also want to check the startup, something like:
- if: matrix.req_file == 'prod.txt'
name: Test production image starts successfully
run: |
docker compose up -d
sleep 5
docker compose ps
docker compose logs
# Maybe curl a health endpoint
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.
@CuriousLearner Thanks for the feedback. Having some tests for the production image sounds like a positive change to me. I think it could be its own PR as its not really related to the local docker compose setup.
This PR makes several improvements to streamline the local Docker setup process:
webcontainer is restarted.reset-local-dbMakefile target.*.djangoproject.localhost:8000links and ties back to the non-Docker setup.tracdoes not exist #2193 (or similar)