This repository contains the example models and the Dockerfile to build the
modelmesh-minio-examples container image. When ModelMesh is deployed with
the --quickstart flag, the example models are deployed via this image.
Set the DOCKER_USER variable for the build and push process below:
# DOCKER_USER=kserve
DOCKER_USER=<your-docker-login>Build the modelmesh-minio-examples docker image:
docker build --target minio-examples -t ${DOCKER_USER}/modelmesh-minio-examples:latest .Note: When ModelMesh is deployed with the --fvt flag
then the modelmesh-minio-dev-examples image will be deployed instead of the
modelmesh-minio-examples image. To build the "dev" image, run the docker build
command with the minio-fvt target:
docker build --target minio-fvt -t ${DOCKER_USER}/modelmesh-minio-dev-examples:latest .Push the newly built images to DockerHub:
docker push ${DOCKER_USER}/modelmesh-minio-examples:latest
docker push ${DOCKER_USER}/modelmesh-minio-dev-examples:latestStart a container with the name "modelmesh-minio-examples":
docker run --rm --name "modelmesh-minio-examples" \
-u "1000" \
-p "9000:9000" \
-e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
-e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
${DOCKER_USER}/modelmesh-minio-examples:latest server /data1Install the MinIO client, mc.
Create an alias localminio for the local MinIO instance:
mc alias set localminio http://localhost:9000 AKIAIOSFODNN7EXAMPLE wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYList all objects in the modelmesh-example-models bucket:
mc ls -r localminio/modelmesh-example-models/To shut down and remove the "modelmesh-minio-examples" Docker container run the following commands:
docker stop "modelmesh-minio-examples"
docker rm "modelmesh-minio-examples"Avoid duplicating large files in the Git repository, instead use COPY ... in
the Dockerfile.
When building a new container image after making changes to the Dockerfile,
check the size of the image and compare it to the
latest
image on DockerHub.
You can also compare the contents of the Docker images by using the du command
line utility to summarize disk usage of the files and folders recursively:
for user in kserve ${DOCKER_USER}; do
docker run --rm --entrypoint bash ${user}/modelmesh-minio-dev-examples:latest \
-c "du --max-depth=5 --all /data1/modelmesh-example-models/" | \
sort -r -k 2 > file_sizes_${user}.txt
done
diff -U0 --minimal file_sizes_*.txt | \
sed 's/^-/\x1b[1;31m-/;s/^+/\x1b[1;32m+/;s/^@/\x1b[1;34m@/;s/$/\x1b[0m/'
rm -f file_sizes_*.txtWhich should produce output similar to the one below when the pytorch-mar-dup/mnist.mar
model was added:
--- file_sizes_latest.txt 2023-01-24 13:05:37
+++ file_sizes_new.txt 2023-01-24 13:05:46
@@ -64,0 +65,2 @@
+4364 /data1/modelmesh-example-models/fvt/pytorch/pytorch-mar-dup/mnist.mar
+4368 /data1/modelmesh-example-models/fvt/pytorch/pytorch-mar-dup
@@ -78 +80 @@
-5184 /data1/modelmesh-example-models/fvt/pytorch
+9552 /data1/modelmesh-example-models/fvt/pytorch
@@ -114,2 +116,2 @@
-102836 /data1/modelmesh-example-models/fvt
-187160 /data1/modelmesh-example-models/
+107204 /data1/modelmesh-example-models/fvt
+191528 /data1/modelmesh-example-models/If you are adding large files to the repository and the git push ... command is
hanging after Writing objects, you may have to increase your
http.postBuffer
before pushing your commit(s) to GitHub:
git config http.postBuffer 52428800