ibra-akv/docker-jobs-bundle
Docker Jobs Bundle simplifies running containerized background jobs from PHP applications, letting you define and execute isolated Docker tasks, queue workers, and scheduled processes with minimal configuration.
Architecture fit. Critical mismatch to flag upfront: this is a Symfony bundle, not a Laravel package, despite the brief. Laravel consumes Symfony components (HttpFoundation, Console, Process, Finder) but not bundles — there is no bundle registration, no config/packages/*.yaml merge, and no compiler-pass extension point in the shape this package assumes. It also presumes a Symfony console application context and a host with Docker CLI/daemon access. Net: this is not installable into a Laravel app without a bridge or fork; "composer require and go" is not a realistic path.
Integration feasibility. Feasible, but the cost is in adaptation, not adoption. The genuinely valuable core is likely small — job definition, docker run invocation (probably via symfony/process), exit-code capture, log collection. A short spike should determine whether to bridge the bundle or reimplement ~300–500 LOC natively. Given 19 stars and 0 dependents, the reimplementation path is plausibly lower-risk than inheriting the dependency.
Technical risk.
Key questions.
Job semantics?Stack fit. Poor-to-moderate out of the box; good only in a narrow band: a Laravel monolith running on Docker hosts that needs isolated batch execution for heterogeneous runtimes (Python, Node, ML binaries) it can't host in-process. Bad fit for Vapor/serverless or shared hosting.
Migration path — three options, ranked:
Job on a queue; the worker runs docker run or calls the Engine API with explicit limits, streaming logs to the configured driver. This inherits Horizon's retry, backoff, and monitoring — composing with infrastructure we already operate rather than introducing a second job model.Always price the do-nothing baseline first: Kubernetes Jobs, ECS RunTask, or a scheduled docker compose run already cover much of this if the org is container-native.
Compatibility. Verify PHP 8.1+ and Symfony 5.4/6.x support; check for symfony/process version conflicts against Laravel's pinned constraint. Confirm Docker Engine API level (v1.41+) and whether it assumes a specific compose file or base image.
Sequencing.
Maintenance. Assume we own it. Zero dependents, a single maintainer, and a three-year release gap mean upstream fixes should not be planned for. Budget recurring work for PHP/Symfony major bumps and Docker Engine API drift — roughly 5–10% of one engineer ongoing, not a one-time integration cost.
Support. No vendor, no community, no SLA, minimal issue history to search. Institutional knowledge lives in whoever writes the integration; the runbook is the only durable asset. Contrast with Horizon/Queue, where the team has existing muscle memory and a hiring pipeline.
Scaling. Throughput is bounded by the Docker host: image pull time, layer cache, disk, and concurrent-container limits. Horizontal scale requires multi-host scheduling (Swarm/K8s/Nomad) — a project an order of magnitude larger than this package implies. Above a few dozen concurrent jobs, we are buying an orchestrator, not a bundle. Also budget per-job latency: docker run adds hundreds of milliseconds to seconds versus an in-process job.
Failure modes.
docker run env vars are visible via docker inspect to anyone with daemon access.Ramp-up. Even the bridge path requires the team to learn Symfony bundle conventions — YAML config trees, service tags, compiler passes — which is roughly 1–2 weeks to competence for a Laravel-only group. Add container-lifecycle debugging (log drivers, cgroup limits, network modes). The native reimplementation path, by contrast, ramps on skills the team already has plus modest Docker CLI work, which is the strongest single argument for choosing it over the bundle.
How can I help you explore Laravel packages today?