Copiar imagenes Docker a una Registry local
Frecuentemente necesito construir ambientes de laboratorio para hacer una "demo" de Tanzu, tanto vSphere with Tanzu como Tanzu Kubernetes Grid. Para que todo sea más fluido es bueno tener las imágenes de contendores en una Registry local.
Además de copiar las imágenes, también es necesario modificar todos los archivos YAML que voy a usar en la presentación. Para realizar todo esto, hice un pequeño script en bash.
Pre requisito
Primero debemos ejecutar "docker login <<localRegistry>>" para almacenar las credenciales en nuestra sesión.
Script para copiar imagenes de docker en una Registry local
El script comienza con la lista de imagenes que quiero copiar localmente y cómo debería ser "re-taggeada", por ejemplo:
"nginx|harbor.lab.local/tanzu/nginx:latest"
Al ejecutar el script, pregunta si queremos modificar los archivos YAML en la carpeta local. Si aceptamos, nuestros archivos YAML ya quedarán listos para ser usados en nuestro laboratorio.
Acá el código completo:
#!/bin/bash # Requisito: docker login targetRegistry images=( "nginx|harbor.wetcom.net/tanzu/nginx:latest" "bdamian/pod-demo|harbor.wetcom.net/tanzu/pod-demo:latest" "bdamian/dotnet-demo-app|harbor.wetcom.net/tanzu/dotnet-demo-app:latest" "alpine|harbor.wetcom.net/tanzu/alpine:latest" ) echo Modificar archivos YAML en esta carpeta? [y/N] read yamlfiles for str in ${images[@]}; do IFS='|' read -r -a image <<< "$str" echo "${image[0]}" docker pull ${image[0]} docker tag ${image[0]} ${image[1]} docker push ${image[1]} if [ "$yamlfiles" = "y" ] || [ "$yamlfiles" = "Y" ]; then echo Modificando archivos YAML sed -i "s+image: ${image[0]}+image: ${image[1]}+g" *.yaml fi done echo Listo!
Comentarios
Publicar un comentario