I currently build my images and tag them with the commit hash. I then pull this image and run it (either via the commit hash or the latest
tag). How can I find out the commit hash from a running container ?
All I currently know is the container hostname
. So if the container is running I can get the digest:
docker inspect --format='{{.Config.Image}}' hostname
Then from the digest I can search on Dockerhub to find the tag linked to the digest (not sure how to do it) and then the tag has the commit hash linked to it.
Unfortunately, if the container is not still active I get the error:
Error: No such object: hostname
Is there any other way to do this?
One of the option that you can try is to set commit hash
in the environment variable, so you will able to get the ENV
from the image as well.
docker build --build-arg GIT_COMMIT=$(git rev-parse HEAD) -t my_image:$(git rev-parse HEAD) .
and the Dockerfile
FROM alpine
ARG GIT_COMMIT
ENV GIT_COMMIT=$GIT_COMMIT
Now you can get GIT_COMMIT
from env
echo "${GIT_COMMIT}"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With