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.
On docker-compose v1.x, this is the output of
run ps application
:On docker-compose v2.x (currently in beta), the same command returns:
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.