Overview
Contributions to docker-php-mssql are welcome and appreciated! Whether you’re fixing bugs, adding new PHP versions, improving documentation, or suggesting enhancements, your help makes this project better for everyone.License
This project is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the same terms.View MIT License
View MIT License
Ways to Contribute
Adding New PHP Versions
The most common contribution is adding support for new PHP versions. This is especially valuable when:- New PHP versions are released
- Existing PHP versions need updates to newer ODBC drivers
- Base images are updated (Alpine Linux, Debian versions)
Bug Fixes
Found a bug? Contributions that fix issues are always welcome:- Extension installation failures
- Compatibility issues with SQL Server
- Build process improvements
- Documentation corrections
Documentation Improvements
Help make the documentation clearer and more comprehensive:- Fix typos or unclear explanations
- Add examples and use cases
- Improve troubleshooting guides
- Translate documentation
Feature Enhancements
Suggest or implement new features:- Additional PHP extensions
- Support for different base images
- Performance optimizations
- CI/CD improvements
Contribution Workflow
Fork the repository
Create your own fork of the project:
- Visit github.com/namoshek/docker-php-mssql
- Click the “Fork” button in the top right
- Clone your fork locally:
Create a feature branch
Create a new branch for your changes:Use descriptive branch names:
feature/add-php-8-5- Adding a new PHP versionfix/odbc-driver-18-issue- Fixing a specific bugdocs/improve-testing-guide- Documentation improvements
Make your changes
Implement your changes following the project structure:For new PHP versions:For bug fixes:
- Identify the affected Dockerfile(s)
- Make necessary changes
- Test the fix locally
- Update README.md or relevant docs
- Ensure formatting is consistent
Test your changes
Update CI configuration
If adding new versions, update Follow the existing pattern for all image variants (CLI, FPM, Alpine, Swoole).
.github/workflows/build-and-push.yml:Commit your changes
Make clear, descriptive commits:Good commit messages:
Add PHP 8.5 CLI and FPM imagesFix ODBC Driver 18 installation on AlpineUpdate README with PHP 8.5 informationImprove error handling in test script
Create a Pull Request
- Go to your fork on GitHub
- Click “Compare & pull request”
- Provide a clear title and description:
- “Add support for PHP 8.5”
- “Fix ODBC driver installation on Alpine Linux”
- “Update documentation for testing procedures”
- What changes were made
- Why the changes are needed
- How you tested the changes
- Any breaking changes or considerations
- Submit the pull request
Contribution Guidelines
Code Style
- Follow the existing Dockerfile structure and patterns
- Use consistent indentation (tabs or spaces matching the file)
- Add comments for complex installation steps
- Keep layers organized and logical
Documentation
- Update README.md when adding new versions
- Include version information and supported features
- Keep the “Available Versions” section up to date
- Add examples for new functionality
Testing Requirements
All contributions must:- Build successfully without errors
- Pass the connection test script
- Include both
sqlsrvandpdo_sqlsrvextensions - Work with SQL Server 2022 or later
Commit Messages
Write clear commit messages:Common Contribution Scenarios
Adding a New PHP Version
Updating ODBC Driver Version
To update to a newer ODBC driver:- Find the Dockerfile(s) to update
- Locate the ODBC driver installation section
- Update version numbers and package URLs
- Test thoroughly - driver changes can break connectivity
- Document the change in your PR
Adding PHP Extensions
To add a new PHP extension to images:- Add the installation command to the Dockerfile:
- Test that the extension loads correctly
- Document the new extension in README.md
- Consider if all image variants should include it
Getting Help
If you need help with your contribution:- Open an issue to discuss your idea first
- Ask questions in your pull request
- Check existing issues and PRs for similar work
- Review the existing codebase for patterns to follow
Recognition
All contributors will be recognized for their contributions. Your GitHub username will appear in the contributors list, and significant contributions may be mentioned in release notes.Code of Conduct
While contributing, please:- Be respectful and professional
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Assume good intentions
- Keep discussions on topic
What Happens Next?
After you submit a pull request:- Automated checks will run (if configured)
- Maintainers will review your changes
- Feedback may be provided for improvements
- Once approved, your changes will be merged
- Images will be built and published automatically
- Your contribution will be part of the next release
