This repository is the home for all IDBI’s containerized automation tools and infrastructure components. It uses a monorepo approach: each project or utility is placed in its own subdirectory, with a dedicated Docker build context.
A PHP 8.3 + Composer Docker image with comprehensive extensions for modern PHP applications. Includes support for databases (PDO MySQL, PostgreSQL), image processing (GD), and text processing (mbstring, intl, XML).
A Node.js LTS + OpenJDK 17 Docker image for full-stack applications requiring both Node.js and Java. Includes rsync for file synchronization tasks. Suitable for multi-language CI/CD workflows.
An automated TLS/SSL certificate renewal solution using Certbot with DNS-01 validation (AWS Route53) and secure upload to HashiCorp Vault. Designed for Kubernetes CronJobs and standalone automation.
docker/
├── php-builder/
│ ├── Dockerfile
│ ├── README.md
│ └── CHANGELOG.md
├── node-builder/
│ ├── Dockerfile
│ ├── README.md
│ └── CHANGELOG.md
├── certbot-renewal/
│ ├── Dockerfile
│ ├── entrypoint.sh
│ ├── README.md
│ └── scripts/
├── release.json
└── README.md
-
Component Independence:
Every project is self-contained and portable as a Docker build context. -
Unified Automation:
A common CI/CD workflow discovers, builds, and (optionally) publishes every project’s image. -
Extensibility:
To add a tool, simply create a new directory with aDockerfileand any supporting scripts/configuration.
# Build any project
cd <project-directory>
docker build -t <project-name>:latest .
# Run, passing required configuration via environment variables as needed
docker run --rm -e VAR1=value1 -e VAR2=value2 <project-name>:latestRefer to individual project documentation or code for runtime requirements and configuration options.
This repository uses Release Please to automate versioning and Docker image releases.
- Automated Release PRs: Release Please monitors commits and automatically creates a pull request when changes are detected.
- Semantic Versioning: Each component follows semantic versioning (Major.Minor.Patch).
- Component Tags: Images are tagged with both version and component name (e.g.,
v1.2.3-php-builder). - Single Release PR: All changed components are included in a single pull request for review.
- Merged Changelog: Merging the release PR automatically publishes new image versions.
Images are published to GitHub Container Registry (GHCR) with the following pattern:
ghcr.io/idbi/<component>:v<version>-<component>
Examples:
ghcr.io/idbi/php-builder:v1.0.0-php-builderghcr.io/idbi/node-builder:v1.0.0-node-builderghcr.io/idbi/certbot-renewal:v1.0.0-certbot-renewal
Simply merge your changes to the main branch. Release Please will automatically:
- Detect changes
- Create a release PR with updated versions
- Build and publish Docker images when the release PR is merged
- Create a new subdirectory and place a
Dockerfileand supporting scripts/config there. - (Optionally) Add a
README.mdwith usage notes. - The CI system will build your project automatically.
- Suggestions, bugfixes, and new tools are welcome via pull requests or issues.
- Please use meaningful, unique directory names for each new project.
Contact:
IDBI DevOps Team · devops@idbi.pe