This is a fork of the MacPaw/symfony-health-check-bundle bundle. Changes on this bundle, is the statuscode on failure. The statuscode is default 200, but incorrect. If the health check failed, this must create a unhealty docker status.
Version | Build Status | Code Coverage |
---|---|---|
master |
||
develop |
Open a command console, enter your project directory and execute:
$ composer require jpvdw86/symfony-health-check-bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require jpvdw86/symfony-health-check-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
SymfonyHealthCheckBundle\SymfonyHealthCheckBundle::class => ['all' => true],
);
// ...
}
// ...
}
config/packages/symfony_health_check.yaml
Configurating health check - all available you can see here.
symfony_health_check:
health_checks:
- id: symfony_health_check.doctrine_check
ping_checks:
- id: symfony_health_check.status_up_check
config/routes/symfony_health_check.yaml
health_check:
resource: '@SymfonyHealthCheckBundle/Resources/config/routes.xml'
config/packages/security.yaml
If you are using symfony/security and your health check is to be used anonymously, add a new firewall to the configuration
firewalls:
healthcheck:
pattern: ^/health
security: false
ping:
pattern: ^/ping
security: false
It is possible to add your custom health check:
<?php
declare(strict_types=1);
namespace YourProject\Check;
use SymfonyHealthCheckBundle\Dto\Response;
class CustomCheck implements CheckInterface
{
public function check(): Response
{
return new Response('status', true, 'up');
}
}
Then we add our custom health check to collection
symfony_health_check:
health_checks:
- id: symfony_health_check.doctrine_check
- id: custom_health_check // custom service check id
You can change the default behavior with a light configuration, remember to return to Step 3 after that:
health:
path: /your/custom/url
methods: GET
controller: SymfonyHealthCheckBundle\Controller\HealthController::healthCheckAction
ping:
path: /your/custom/url
methods: GET
controller: SymfonyHealthCheckBundle\Controller\PingController::pingAction
HEALTHCHECK --start-period=15s --interval=5s --timeout=3s --retries=3 CMD curl -sS {{your host}}/health || exit 1