Docker: Guides and Practical Know-how | Page 2 | mironsoft Blog
Docker
-
Apr 23, 2026
Before a matrix configuration goes live in GitHub Actions or GitLab CI, prototyping it in Bash pays off: run the same combinatorics of versions, operating systems and environments locally through a loop, debug failures directly in the shell, and only then write the final YAML matrix. That saves expensive trial-and-error commits and shows which combinations actually make sense.
-
Apr 23, 2026
Not every PHP project is a monolith like Magento. For standalone microservices built with Symfony or Laravel, a much leaner .gitlab-ci.yml is enough, one that still cleanly covers the same core principles of build, test, and deployment.
-
Apr 19, 2026
Kubernetes gets marketed as the solution to problems many teams do not even have yet. Docker Compose handles local development and smaller production deployments elegantly. Kubernetes handles cluster scaling, self-healing and multi-tenant isolation. The difference is not about which technology is better, it is about the size of the problem.
-
Apr 18, 2026
Every Docker image starts with a base image that the whole team trusts blindly, usually referenced by a tag like latest or a version number without further checks. Supply chain security replaces that blind trust with pinned digests, cryptographic signatures, and traceable provenance information, so a compromised base image does not silently reach production deployments.
-
Apr 17, 2026
PHP projects need Composer for backend dependencies and Node for asset compilation. Forcing both into a single container is the wrong move, and running both on the host is impractical. Multi-stage builds and cleanly separated build containers solve this elegantly.
-
Apr 16, 2026
docker stop sends a SIGTERM and waits, yet many applications never respond to it and get hard killed once the deadline passes. Understanding how signal forwarding, PID 1, and the grace period interact is the key to avoiding dropped connections and data loss during deployments.
-
Apr 14, 2026
Anyone needing to check multiple feature branches at the same time quickly hits the limits of a single Docker Compose stack: port conflicts, shared databases and naming collisions between containers and networks. COMPOSE_PROJECT_NAME combined with profiles solves exactly this problem by letting every environment run side by side, cleanly isolated.
-
Apr 11, 2026
A container without a real init process can accumulate zombie processes and mishandle signals, two problems that look harmless at first glance but can destabilize long running production systems over weeks. tini and dumb-init solve both problems with just a few kilobytes of extra code.
-
Apr 9, 2026
The --squash build flag merges all layers of an image into a single one, producing smaller, cleaner images, but at the cost of the layer caching between builds that speeds up many CI pipelines.
-
Apr 8, 2026
Containers on a developer laptop and containers in production are two fundamentally different things. This Docker checklist covers every mandatory category: security hardening, performance limits, storage protection, and repeatable deployment procedures, with concrete commands for each item.