Docker and php-cli

overdose picture overdose · Mar 29, 2016 · Viewed 7.4k times · Source

I have installed PHP 7 (php-fpm and php-cli) and my app is working fine with new PHP, but tests (phpunit) don't because some extensions aren't updated yet.

So I'm thinking to use/create some docker container with PHP 5.6 that would replace my system's (host) php-cli.

For example, if I build container called php56 from Dockerfile that looks like this:

FROM ubuntu:15.10
RUN  apt-get -y update && apt-get install -y php5-cli
ENTRYPOINT ["php"]

and run:

sudo docker run -it php56 -v

I'm getting version info from Docker container, so docker's php-cli 5.6 is working. So I wan't to put docker run command in

/usr/bin/php

so that host use php-cli from docker container. (then php -v would give me PHP 5.6 info not PHP 7.0 version info)

It's not best example, but I hope that you guys will understand what I'm trying to do. If it's not possible to solve it like this, please recommend me other solution.

Answer

Meuoi picture Meuoi · Dec 2, 2019

I did something that looks like what you're looking for: https://github.com/jclaveau/docker-php-multiversion

This adds a php shell script which will run a docker image containing all available PHP versions since 5.6.

You can then run php 5.6 vendor/bin/phpunit or php 7.4 vendor/bin/phpunit, etc.

I embedded it inside a Docker image after a crash of my SSD where I lost all my php.ini configuration so as long as you have Docker.io installed, it would work