Some errors will be bubbled-up into the default log file. Refer to Logs.md for more info.
Currently, PDCD does not break if a single job fails. You will however not see its artifacts in the output directory. If you want to investigate why a job failed, perform the following:
- Set
cleanup
toFalse
in the config - Run PDCD
- Get the failed job's container ID
-
docker ps -a
- Look for the job's image name in the output and note the container ID
-
- Inspect container logs
-
docker logs abcd
- replace
abcd
with container id
-
Alternatively, you can use the builtin log
subcommand to retrieve logs for all containers of all (or a select) images in the config. cleanup: False
still required).
If you need to further debug, you can get a shell in a completed job's container by doing the following:
- Get the container ID via the process above
- Save the container as an image
-
docker commit abcd efgh
- replace
abcd
with container id - replace
efgh
with some arbitrary name
-
- Start shell in new image
-
docker run --rm -it --entrypoint sh efgh
- replace
efgh
with value used above sh
can be replaced with a different shell if that shell is installed (e.g.bash
)
-
- When you're done
-
exit
-
docker rmi efgh
- will delete the temp image
- replace
edfg
with value used above
-
docker rm abcd
- will delete the exited container
- replace
abcd
with value used above
-
docker rm $(docker ps -qa --no-trunc --filter "status=exited")
- alternatively you can use this command to delete all exited containers
-