The CLI had an issue where it would throw error cannot take exclusive lock for project "dora-metrics": process with PID 113930 is still running. This was caused by another instance of docker-watch running or not exiting properly. So the solution was to parse the log and look for this error. Then from that extract the PID of the process and run the kill command. Now when we run the kill command we toggle the retry useState flag so that the useEffect starts again thereby starting docker-watch again.
Now the other problem was that the error was getting caught due to process.on('close'.......) which in turn resulted in the execution of the handleExit() function. To avoid this, a circular buffer was created to store the last 10 logs, and when the 'close' event is triggered we search for the specific error and if found, we simply resolve the promise.
The CLI had an issue where it would throw error
cannot take exclusive lock for project "dora-metrics": process with PID 113930 is still running
. This was caused by another instance of docker-watch running or not exiting properly. So the solution was to parse the log and look for this error. Then from that extract thePID
of the process and run the kill command. Now when we run the kill command we toggle the retry useState flag so that the useEffect starts again thereby starting docker-watch again.Now the other problem was that the error was getting caught due to process.on('close'.......) which in turn resulted in the execution of the handleExit() function. To avoid this, a circular buffer was created to store the last 10 logs, and when the 'close' event is triggered we search for the specific error and if found, we simply resolve the promise.