-
Notifications
You must be signed in to change notification settings - Fork 0
/
DockerImgSync
46 lines (36 loc) · 918 Bytes
/
DockerImgSync
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
# By Sergio Arroyo Pastor
red () {
echo -e "\e[31m $1 \e[0m"
}
yellow () {
echo -e "\e[33m $1 \e[0m"
}
green () {
echo -e "\e[32m $1 \e[0m"
}
errors () {
red "$1"
exit 1
}
IMAGE=$1
REGISTRY=$2
NODES=$(docker node ls --format '{{.Hostname}}' | tail -n +2)
if [ -z $IMAGE ] || [ -z $REGISTRY ];
then
red "- Please add an image and a repository -"
yellow "- Script usage:"
yellow "- ./DockerImgSync <Image_name:tag> <Repository_name>"
yellow " ->Example: ./DockerImgSync myregistry:4005/myimage:tag myregistry:4005"
exit 1
else
docker login $REGISTRY
docker push $IMAGE &> /dev/null && \
green "Image pushed to repository successfuly" || \
errors "There was a problem pushing the image"
for i in $NODES; do
ssh $i "docker login $REGISTRY ; docker pull $IMAGE > /dev/null" && \
green "Image downloaded successfuly" || \
errors "There was a problem downloading the image"
done
fi