docker: include git hash in Docker image.

Put the Git hash of the current commit inside the Docker image built by
Docker Hub. The hash is stored in the REVISION file in the root directory.
This commit is contained in:
evazion
2021-05-02 16:59:49 -05:00
parent 50cb3ef53a
commit ca34d502c8
3 changed files with 43 additions and 0 deletions

View File

@@ -47,6 +47,9 @@ RUN yarn install
COPY . .
ARG SOURCE_COMMIT
RUN echo "$SOURCE_COMMIT" > REVISION
FROM development AS assets

27
hooks/README.md Normal file
View File

@@ -0,0 +1,27 @@
The directory contains hooks used by Docker Hub when building images:
Docker Hub allows you to override and customize the `build`, `test` and `push`
commands during automated build and test processes using hooks. For
example, you might use a build hook to set build arguments used only during
the build process. (You can also set up custom build phase hooks to perform
actions in between these commands.)
Use these hooks with caution. The contents of these hook files replace the
basic `docker` commands, so you must include a similar build, test or push
command in the hook or your automated process does not complete.
To override these phases, create a folder called `hooks` in your source code
repository at the same directory level as your Dockerfile. Create a file
called `hooks/build`, `hooks/test`, or `hooks/push` and include commands that the
builder process can execute, such as `docker` and `bash` commands (prefixed
appropriately with `#!/bin/bash`).
These hooks will be running on an instance of Amazon Linux 2, a distro
based on Ubuntu, which includes interpreters such as Perl and Python and
utilities such as git or curl. Please check the link above for the full
list.
# See also
* https://docs.docker.com/docker-hub/builds/advanced
* https://stackoverflow.com/questions/59057978/passing-source-commit-to-dockerfile-commands-on-docker-hub

13
hooks/build Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# This file is used to add the Git commit hash to the Docker image when the
# image is built by Docker Hub.
#
# https://docs.docker.com/docker-hub/builds/advanced/
# https://stackoverflow.com/questions/59057978/passing-source-commit-to-dockerfile-commands-on-docker-hub
#
# SOURCE_COMMIT: the SHA1 hash of the commit being tested.
# DOCKERFILE_PATH: the dockerfile currently being built.
# IMAGE_NAME: the name and tag of the Docker repository being built. (This variable is a combination of DOCKER_REPO:DOCKER_TAG.)
docker build --build-arg SOURCE_COMMIT=$SOURCE_COMMIT -f $DOCKERFILE_PATH -t $IMAGE_NAME .