mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-07 15:25:41 +01:00
Updates the Dockerfile to facilitate local image builds, adds documentation for how to build, adds registry caching for final image too
This commit is contained in:
parent
0f1e31643d
commit
49fad14920
5 changed files with 62 additions and 99 deletions
|
|
@ -2,15 +2,13 @@
|
|||
|
||||
# Helper script for building the Docker image locally.
|
||||
# Parses and provides the nessecary versions of other images to Docker
|
||||
# before passing in the rest of script args. A future enhancement
|
||||
# would be to combine this with the CI script
|
||||
# before passing in the rest of script args.
|
||||
|
||||
# First Argument: The Dockerfile to build
|
||||
# Other Arguments: Additional arguments to docker build
|
||||
|
||||
# Example Usage:
|
||||
# ./build-docker-image.sh Dockerfile -t paperless-ngx:my-awesome-feature
|
||||
# ./build-docker-image.sh docker-builders/Dockerfile.qpdf -t paperless-ngx-build-qpdf:x.y.z
|
||||
|
||||
set -eux
|
||||
|
||||
|
|
@ -28,23 +26,17 @@ psycopg2_version=$(jq ".default.psycopg2.version" Pipfile.lock | sed 's/=//g' |
|
|||
# Read this from the other config file
|
||||
qpdf_version=$(jq ".qpdf.version" .build-config.json | sed 's/"//g')
|
||||
jbig2enc_version=$(jq ".jbig2enc.version" .build-config.json | sed 's/"//g')
|
||||
# Get the branch name
|
||||
frontend_version=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
# Get Git tags for building
|
||||
# psycopg2 uses X_Y_Z git tags
|
||||
psycopg2_git_tag=${psycopg2_version//./_}
|
||||
# pikepdf uses vX.Y.Z
|
||||
pikepdf_git_tag="v${pikepdf_version}"
|
||||
# Get the branch name (used for caching)
|
||||
branch_name=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
# https://docs.docker.com/develop/develop-images/build_enhancements/
|
||||
# Required to use cache-from
|
||||
export DOCKER_BUILDKIT=1
|
||||
|
||||
docker build --file "$1" \
|
||||
--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/app:"${branch_name}" \
|
||||
--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/app:dev \
|
||||
--build-arg JBIG2ENC_VERSION="${jbig2enc_version}" \
|
||||
--build-arg QPDF_VERSION="${qpdf_version}" \
|
||||
--build-arg PIKEPDF_VERSION="${pikepdf_version}" \
|
||||
--build-arg PIKEPDF_GIT_TAG="${pikepdf_git_tag}" \
|
||||
--build-arg PSYCOPG2_VERSION="${psycopg2_version}" \
|
||||
--build-arg PSYCOPG2_GIT_TAG="${psycopg2_git_tag}" \
|
||||
--build-arg FRONTEND_VERSION="${frontend_version}" "${@:2}" .
|
||||
--build-arg PSYCOPG2_VERSION="${psycopg2_version}" "${@:2}" .
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue