Splitt your npm scripts and use the referenced names instead.
"docker:kill": "docker ps | grep my_project | tr -s ' ' | cut -d ' ' -f2 | xargs docker kill",
"docker:rmi": "docker images | grep my_project | tr -s ' ' | cut -d ' ' -f2 | xargs docker rmi -f",
"docker:rm": "docker volume ls | tr -s ' ' | cut -d ' ' -f2 |xargs docker volume rm",
"docker:rmf": "docker-compose rm -f",
"docker:build": "docker-compose build",
"docker:up": "docker-compose up",
"chain:1": "npm run docker:kill && npm run docker:rmi",
"chain:2": "npm run docker:rm && npm run docker:rmf",
"chain:3": "npm run docker:build && npm run docker:up",
"cleanup": "npm run chain:1 & npm run chain:2 & npm run chain:3",
npm run cleanup will execute chain:1 then chain:2 and chain:3. In chain:1 npm will execute the commands docker:kill and docker:rmi andsoforth.