dockerwest / compose-pimcore

Docker compose environment for Pimcore
MIT License
13 stars 8 forks source link

Improve detection of active containers to support docker-compose v2 #25

Closed StephenBeirlaen closed 3 years ago

StephenBeirlaen commented 3 years ago

On docker-compose v1.x, this is the output of run ps application:

              Name                        Command              State        Ports
-----------------------------------------------------------------------------------
<someproject>_application_1   /startup.sh php-fpm7.4   Up (healthy)   9000/tcp

On docker-compose v2.x (currently in beta), the same command returns:

              Name                        Command              State        Ports
-----------------------------------------------------------------------------------
<someproject>_application_1   /startup.sh php-fpm7.4   running (healthy)   9000/tcp

Note the running container state is listed as "running" instead of "Up" in the newer version. This breaks compatibility with the current active container detection logic. Instead of searching for both "Up" and "running" (which might break again sooner or later), I suggest to --filter the run ps output to only show running containers. --filter 'status=running' is compatible with docker-compose v1.x and v2.x. I'm also passing the --services argument to return a list of only the docker-compose service names, that we can search through to find the required container and determine that it is running.

BlackIkeEagle commented 3 years ago

Thanks @StephenBeirlaen Nice work