mirror of
https://github.com/BtbN/FFmpeg-Builds.git
synced 2025-06-12 13:27:38 +02:00
Overhaul cache system
This commit is contained in:
58
generate.sh
58
generate.sh
@ -18,49 +18,6 @@ to_df() {
|
||||
echo >> "$_of"
|
||||
}
|
||||
|
||||
default_dl() {
|
||||
to_df "RUN git-mini-clone \"$SCRIPT_REPO\" \"$SCRIPT_COMMIT\" \"$1\""
|
||||
}
|
||||
|
||||
###
|
||||
### Generate download Dockerfile
|
||||
###
|
||||
|
||||
exec_dockerstage_dl() {
|
||||
SCRIPT="$1"
|
||||
(
|
||||
SELF="$SCRIPT"
|
||||
SELFLAYER="$(layername "$STAGE")"
|
||||
source "$SCRIPT"
|
||||
ffbuild_dockerdl || exit $?
|
||||
TODF="Dockerfile.dl.final" ffbuild_dockerlayer_dl || exit $?
|
||||
)
|
||||
}
|
||||
|
||||
export TODF="Dockerfile.dl"
|
||||
|
||||
to_df "FROM ${REGISTRY}/${REPO}/base:latest AS base"
|
||||
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
|
||||
to_df "WORKDIR \$FFBUILD_DLDIR"
|
||||
|
||||
for STAGE in scripts.d/*.sh scripts.d/*/*.sh; do
|
||||
to_df "FROM base AS $(layername "$STAGE")"
|
||||
exec_dockerstage_dl "$STAGE"
|
||||
done
|
||||
|
||||
to_df "FROM base AS intermediate"
|
||||
cat Dockerfile.dl.final >> "$TODF"
|
||||
rm Dockerfile.dl.final
|
||||
|
||||
to_df "FROM scratch"
|
||||
to_df "COPY --from=intermediate /opt/ffdl/. /"
|
||||
|
||||
if [[ "$TARGET" == "dl" && "$VARIANT" == "only" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DL_IMAGE="${DL_IMAGE_RAW}:$(./util/get_dl_cache_tag.sh)"
|
||||
|
||||
###
|
||||
### Generate main Dockerfile
|
||||
###
|
||||
@ -69,11 +26,23 @@ exec_dockerstage() {
|
||||
SCRIPT="$1"
|
||||
(
|
||||
SELF="$SCRIPT"
|
||||
STAGENAME="$(basename "$SCRIPT" | sed 's/.sh$//')"
|
||||
source util/dl_functions.sh
|
||||
source "$SCRIPT"
|
||||
|
||||
ffbuild_enabled || exit 0
|
||||
|
||||
to_df "ENV SELF=\"$SELF\""
|
||||
to_df "ENV SELF=\"$SELF\" STAGENAME=\"$STAGENAME\""
|
||||
|
||||
set -x
|
||||
|
||||
STG="$(ffbuild_dockerdl)"
|
||||
if [[ -n "$STG" ]]; then
|
||||
HASH="$(sha256sum <<<"$STG" | cut -d" " -f1)"
|
||||
to_df "ADD .cache/downloads/${STAGENAME}_${HASH}.tar.xz /${STAGENAME}"
|
||||
to_df "WORKDIR /${STAGENAME}"
|
||||
fi
|
||||
|
||||
ffbuild_dockerstage || exit $?
|
||||
)
|
||||
}
|
||||
@ -82,6 +51,7 @@ export TODF="Dockerfile"
|
||||
|
||||
to_df "FROM ${REGISTRY}/${REPO}/base-${TARGET}:latest AS base"
|
||||
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
|
||||
to_df "COPY util/run_stage.sh /usr/bin/run_stage"
|
||||
|
||||
for addin in "${ADDINS[@]}"; do
|
||||
(
|
||||
|
Reference in New Issue
Block a user