2020-12-21 01:31:10 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-12-01 18:28:45 -06:00
|
|
|
set -x
|
2020-12-21 01:31:10 -06:00
|
|
|
DOCKER_IMAGE=$1
|
|
|
|
TARGET_PATH=$2
|
2022-12-01 18:28:45 -06:00
|
|
|
DOCKER_IMAGE_TAG=$3
|
|
|
|
DOCKER_PATH=$4
|
|
|
|
DOCKER_FILE=$5
|
2020-12-21 01:31:10 -06:00
|
|
|
|
|
|
|
[ -z "$TARGET_PATH" ] && TARGET_PATH=./target
|
|
|
|
|
2022-11-29 09:02:01 -06:00
|
|
|
DOCKER_IMAGE_NAME=$(echo $DOCKER_IMAGE | cut -d: -f1 | sed "s/-$DOCKER_USERNAME\$//")
|
2022-12-01 18:28:45 -06:00
|
|
|
#Create the container specific to the user tag and slave tag
|
|
|
|
DOCKER_CONTAINER=${DOCKER_IMAGE_TAG/:/-}
|
2020-12-21 01:31:10 -06:00
|
|
|
TARGET_VERSIONS_PATH=$TARGET_PATH/versions/dockers/$DOCKER_IMAGE_NAME
|
|
|
|
|
|
|
|
[ -d $TARGET_VERSIONS_PATH ] && rm -rf $TARGET_VERSIONS_PATH
|
|
|
|
mkdir -p $TARGET_VERSIONS_PATH
|
|
|
|
|
|
|
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
|
|
|
|
|
|
|
# Remove the old docker container if existing
|
|
|
|
if docker container inspect $DOCKER_IMAGE > /dev/null 2>&1; then
|
|
|
|
docker container rm $DOCKER_IMAGE > /dev/null
|
|
|
|
fi
|
2022-12-01 18:28:45 -06:00
|
|
|
docker create --name $DOCKER_CONTAINER --entrypoint /bin/bash $DOCKER_IMAGE_TAG
|
2020-12-21 01:31:10 -06:00
|
|
|
docker cp -L $DOCKER_CONTAINER:/etc/os-release $TARGET_VERSIONS_PATH/
|
|
|
|
docker cp -L $DOCKER_CONTAINER:/usr/local/share/buildinfo/pre-versions $TARGET_VERSIONS_PATH/
|
|
|
|
docker cp -L $DOCKER_CONTAINER:/usr/local/share/buildinfo/post-versions $TARGET_VERSIONS_PATH/
|
2022-12-01 18:28:45 -06:00
|
|
|
|
|
|
|
# Save the cache contents from docker build
|
|
|
|
IMAGENAME=${DOCKER_IMAGE_TAG} j2 files/build_templates/build_docker_cache.j2 > ${DOCKER_FILE}.cleanup
|
|
|
|
docker tag ${DOCKER_IMAGE_TAG} tmp-${DOCKER_IMAGE_TAG}
|
|
|
|
DOCKER_BUILDKIT=1 docker build -f ${DOCKER_PATH}/Dockerfile.cleanup --target output -o target/vcache/${DOCKER_IMAGE_NAME} ${DOCKER_PATH}
|
|
|
|
DOCKER_BUILDKIT=1 docker build -f ${DOCKER_PATH}/Dockerfile.cleanup --no-cache --target final --tag ${DOCKER_IMAGE_TAG} ${DOCKER_PATH}
|
|
|
|
docker rmi tmp-${DOCKER_IMAGE_TAG}
|
|
|
|
|
2020-12-21 01:31:10 -06:00
|
|
|
docker container rm $DOCKER_CONTAINER
|