diff --git a/config/docker/Dockerfile.danbooru b/config/docker/Dockerfile.danbooru index ecb71bfeb..6ed90d067 100644 --- a/config/docker/Dockerfile.danbooru +++ b/config/docker/Dockerfile.danbooru @@ -47,6 +47,9 @@ RUN yarn install COPY . . +ARG SOURCE_COMMIT +RUN echo "$SOURCE_COMMIT" > REVISION + FROM development AS assets diff --git a/hooks/README.md b/hooks/README.md new file mode 100644 index 000000000..e95c20bd6 --- /dev/null +++ b/hooks/README.md @@ -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 diff --git a/hooks/build b/hooks/build new file mode 100755 index 000000000..6a848ba81 --- /dev/null +++ b/hooks/build @@ -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 .