examples/ is based on KasperskyLab/knp at 55470ed6 with local changes to the mnist-learn altai/blifat models, cuda-backend CMake and model_loader. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
76 lines
2.2 KiB
Bash
76 lines
2.2 KiB
Bash
#!/bin/bash
|
|
|
|
SCRIPT_PATH="$(dirname $(realpath "${BASH_SOURCE[0]}"))"
|
|
|
|
DOCKER_COMMAND="docker"
|
|
|
|
SDK_IMAGE_BASE_NAME="knp-sdk-image"
|
|
BUILD_IMAGE_BASE_NAME="knp-build-image"
|
|
|
|
SDK_IMAGE_NAME="kasperskydh/${SDK_IMAGE_BASE_NAME}:latest"
|
|
SDK_IMAGE_FILE="${SCRIPT_PATH}/${SDK_IMAGE_BASE_NAME}.txz"
|
|
|
|
EULA_FILE="${SCRIPT_PATH}/LICENSE.txt"
|
|
|
|
ADD_DNS="--dns 8.8.8.8"
|
|
KNP_PACKAGES_VERSION="2.0.0_amd64"
|
|
|
|
|
|
function die()
|
|
{
|
|
echo "$1" >&2
|
|
exit "${2:-1}"
|
|
}
|
|
|
|
|
|
function show_eula()
|
|
{
|
|
while true; do
|
|
more "$1"
|
|
echo
|
|
read -p "Do you accept the EULA? (y/n): " choice
|
|
case "$choice" in
|
|
[Yy]*) echo "EULA accepted.";
|
|
break;;
|
|
[Nn]*) die "EULA rejected. Exiting."
|
|
;;
|
|
*) echo "Please answer yes (y) or no (n).";;
|
|
esac
|
|
done
|
|
}
|
|
|
|
|
|
if ! command -v "${DOCKER_COMMAND}" &>/dev/null; then
|
|
die "Docker isn't installed, you need to install docker package."
|
|
fi
|
|
|
|
if [ -e "${EULA_FILE}" ]; then
|
|
show_eula "${EULA_FILE}"
|
|
fi
|
|
|
|
if [ -e "${SDK_IMAGE_FILE}" ]; then
|
|
echo "SDK image file \"${SDK_IMAGE_FILE}\" was found, loading..."
|
|
"${DOCKER_COMMAND}" load -i "${SDK_IMAGE_FILE}" || die "Image loading error."
|
|
echo "SDK image file loaded successfully."
|
|
else
|
|
echo "Pulling Docker image ${SDK_IMAGE_NAME}..."
|
|
"${DOCKER_COMMAND}" pull "${SDK_IMAGE_NAME}" || die "Image pull incomplete."
|
|
fi
|
|
|
|
TMP_FILE=$(mktemp -u)
|
|
trap "rm -f \"${TMP_FILE}\"" EXIT
|
|
|
|
echo "Installing CUDA and GPU backend into the Docker image ${SDK_IMAGE_NAME}..."
|
|
"${DOCKER_COMMAND}" run --cidfile="${TMP_FILE}" ${ADD_DNS} -ti "${SDK_IMAGE_NAME}" \
|
|
dpkg -i /knp/knp-gpu-cuda-backend_${KNP_PACKAGES_VERSION}.deb /knp/knp-gpu-cuda-backend-dev_${KNP_PACKAGES_VERSION}.deb \
|
|
|| die "Installation incomplete."
|
|
|
|
#echo "Removing old SDK image..."
|
|
#"${DOCKER_COMMAND}" image rm -f "${IMAGE_NAME}" || die "Cannot remove Docker image."
|
|
|
|
echo "Commiting changes into image..."
|
|
"${DOCKER_COMMAND}" commit -m "CUDA and KNP GPU backend installed" $(cat "${TMP_FILE}") "${SDK_IMAGE_NAME}"\
|
|
|| die "Cannot commit changes into Docker image."
|
|
|
|
echo "SDK image was installed successfully."
|
|
echo "You can run shell in the image, using following command: 'docker run -ti --rm ${SDK_IMAGE_NAME} bash'"
|