Shiphp The PHP Developer's Guide to Docker

Latest Blog Posts

Announcing the Russian Translation of 'Building Your First PHP Application with Docker'

It’s been almost a year exactly since I first published Building PHP Applications in Docker, and today I’m excited to announce that it is now available in Russian! I can’t take any credit for this translation; Alexey Pyltsyn reached out and generously offered to do the translation for free. Since I don’t speak Russian, I can’t verify the accu... Read more

Building a Single NGinx Docker Image For All My PHP-FPM Containers

Lately I’ve been working to deploy a suite of PHP microservices using Docker containers. One of the problems is that our PHP applications are set up to work with PHP-FPM and Nginx (instead of the admittedly simpler Apache/PHP setup covered here), so each PHP microservice needs two containers (and by extension, two Docker images): a PHP-FPM conta... Read more

Debugging Intermittent Test Failures with Bash and PHPUnit

If you’ve been writing PHPUnit tests for long, you’ve probably run into a time when a test works 90% of the time, but every now and then it throws an unexpected error or failure. If it happens only rarely, you might just get around it by re-running your test suite, but if you’ve got a large test suite or intermittent failures become really commo... Read more

Running SQLite in PHP with Docker

SQLite is a great database for getting started on small projects. Unlike traditional SQL databases (like MySQL or Postgres), SQLite stores all your records in a single flat file that you can easily edit, transfer, or even check into version control (if your project warrants it). Another great feature of SQLite is that it’s built into the defaul... Read more

Testing Your Code with Multiple Versions of PHP Using Docker

About a year ago, I spent some time working with an open source project called PHP Crud API. The project creates a RESTful API from a relational database using a single PHP script. It’s quite an impressive feat of engineering, but as I started working on the project, I realized I needed a reliable way to test my changes in different versions of ... Read more