Add Docker-based development environment with optimized CI#254
Open
Add Docker-based development environment with optimized CI#254
Conversation
80665e1 to
6bddf9a
Compare
Features: - Makefile targets for running linting tools via official Docker images - mvdan/shfmt:v3 for shell script formatting - koalaman/shellcheck:stable for shell linting - node:lts-alpine with markdownlint-cli2 for markdown validation - No custom Dockerfile needed - uses well-maintained official images - Simplified pre-commit configuration with Docker-based hooks - Updated SETUP.md and AGENTS.md for simplified Docker workflow - Reverted CI workflow to GitHub Actions (checkshell.yml) - Native shfmt and shellcheck actions - DavidAnson/markdownlint-cli2-action for markdown linting - Jobs run in parallel without Docker overhead Benefits: - Developers only need Docker installed - Official tool images always available from maintainers - No build step required - images pulled on demand - Consistent tool versions across local dev and CI - Simpler to maintain - just update image tags - Faster CI with native GitHub Actions - Automatic updates by using stable/lts tags
6bddf9a to
a2c1d1f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds a Docker-based development environment using official tool images. Developers only need Docker installed to run linters and formatters.
Changes
Makefile Targets
New Makefile with convenient targets:
make lint- Run all linters (shellcheck, shfmt, markdownlint)make format- Auto-fix shell script formattingmake shellcheck,make shfmt,make markdown-lint- Run individual toolsmake help- List all targetsOfficial Docker Images
Uses well-maintained official images:
GitHub Actions CI
Simplified
checkshell.ymlusing GitHub Actions:Updated Documentation
Benefits
✅ Simple: No custom Dockerfile - just use official images
✅ Maintainable: Update tools by changing image tags
✅ Consistent: Same official images for local dev and CI
✅ Zero Setup: Only Docker required
✅ Faster CI: GitHub Actions run natively without Docker overhead
✅ Auto-Updates: Using stable/lts tags stays current
File Changes
Breaking Changes
None. This is purely additive and more maintainable than the previous approach.