dominion-solutions / docker-minion
A package to integrate Laravel with the Docker daemon
Fund package maintenance!
Dominion Solutions LLC
Requires
- php: ^8.2
- beluga-php/docker-php: ^1.43
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- composer-runtime-api: ^2.0
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- matthewbdaly/artisan-standalone: ^0.0.12
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
Features
Monitoring
Monitors the docker socket in order to be able to provide data about what containers are running.
Control
Allows starting / stopping / restarting of containers.
Listing Containers
use DominionSolutions\DockerMinion\Facades\DockerMinion; ... DockerMinion::listContainers(['all'=>true|false,'filters'=>'<filter JSON>'])
List Filter Json
Formatted such as
{ "<filter_name>": [ "<filter_value_0>", "<filter_value_1>", ...] }
Available Filters
ancestor
=(<image-name>[:<tag>]
,<image id>
, or<image@digest>
)before
=(<container id>
or<container name>
)expose
=(<port>[/<proto>]
|<startport-endport>/[<proto>]
)exited=<int>
containers with exit code of<int>
health
=(starting
|healthy
|unhealthy
|none
)id=<ID>
a container's IDisolation=
(default
|process
|hyperv
) (Windows daemon only)is-task=
(true
|false
)label=key
orlabel="key=value"
of a container labelname=<name>
a container's namenetwork
=(<network id>
or<network name>
)publish
=(<port>[/<proto>]
|<startport-endport>/[<proto>]
)since
=(<container id>
or<container name>
)status=
(created
|restarting
|running
|removing
|paused
|exited
|dead
)volume
=(<volume name>
or<mount point destination>
)
Support us
We invest a lot of resources into creating best in class open source packages. You can support us by hiring us or buying one of our paid products.
Installation
You can install the package via composer:
composer require dominion-solutions/docker-minion
You can publish and run the migrations with:
php artisan vendor:publish --tag="docker-minion-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="docker-minion-config"
This is the contents of the published config file:
return [ 'watch-docker' => env('WATCH_DOCKER', true), ];
Optionally, you can publish the views using
php artisan vendor:publish --tag="docker-minion-views"
Usage
$dockerMinion = new DominionSolutions\DockerMinion(); echo $dockerMinion->echoPhrase('Hello, DominionSolutions!');
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.