migetpacks is open source and available on GitHub. Contributions are welcome under the O’Saasy License.

Prerequisites

  • Docker (with BuildKit support)
  • Bash 4+
  • make (optional, for build shortcuts)

Project Structure

Development Commands

Testing Locally

You can test builds locally without pushing to a remote registry:
When OUTPUT_IMAGE does not contain a registry prefix (e.g., my-app:local vs registry.io/my-app:latest), the builder uses the local Docker daemon and the image is not pushed.

Debugging Tips

  • Check the generated Dockerfile in the build output (Dockerfile.runtime)
  • Inspect the built image: docker run --rm my-app:local ls -la /app/
  • Check environment: docker run --rm my-app:local env

Example Apps

Working examples for all supported languages are in examples/:

Adding a New Language

To add support for a new language:
  1. Add a detection function in bin/detect
  2. Add a version detection function in bin/detect-version
  3. Create a lib/{language}.sh with {language}_get_images(), {language}_generate_builder(), and {language}_generate_runtime() functions
  4. Wire the new language into bin/build
  5. Add an example app in examples/
  6. Add tests in test/