-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoci-remove-remote-docker-tag.sh
executable file
·211 lines (165 loc) · 8.34 KB
/
oci-remove-remote-docker-tag.sh
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#!/bin/ash
HERE=$(pwd)
if [ -z "$DOCKER_USER" ]; then
echo "You need to export the docker.io registry username e.g."
echo "export DOCKER_USER=\"something\""
exit
fi
if [ -z "$DOCKER_PW" ]; then
echo "You need to export the docker.io registry password e.g."
echo "export DOCKER_PW=\"something\""
exit
fi
if [ $# -lt 3 ];
then
echo "+ $0: Too few arguments!"
echo "+ use something like:"
echo "+ $0 <image name> <container name> <tag> <image container name> <machine name>"
echo "+ $0 app-container-image-python3-mastermind-oci app-container-python3-mastermind-oci latest"
echo "+ $0 app-container-image-python3-mqttbrokerclient-oci app-container-python3-mqttbrokerclient-oci latest"
echo "+ $0 app-container-image-python3-data-collector-oci app-container-python3-data-collector-oci latest"
echo "+ $0 app-container-image-python3-nmap-srv-oci app-container-python3-nmap-srv-oci latest"
echo "+ $0 app-container-image-mosquitto-oci app-container-mosquitto-oci latest"
echo "+ $0 app-container-image-redis-oci app-container-redis-oci latest"
echo "+ $0 app-container-image-tensorflow-oci app-container-tensorflow-oci latest container-x86-64-tensorflow"
echo "+ $0 app-container-image-java-oci app-container-java-oci latest container-x86-64-java"
echo "+ $0 app-container-image-java-examples-oci app-container-java-examples-oci latest container-x86-64-java"
echo "+ $0 app-container-image-tensorflow-examples-oci app-container-tensorflow-examples-oci latest container-x86-64-tensorflow"
echo "+ $0 app-container-image-influxdb-prebuilt-oci app-container-influxdb-prebuilt-oci latest container-x86-64-golang"
echo "+ $0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+ $0 app-container-image-lighttpd-oci-container-arm-v7 oci-lighttpd latest-arm-v7 container-arm-v7 container-arm-v7"
echo "+ $0 app-container-image-lighttpd-oci-container-x86-64 oci-lighttpd latest-x86-64 container-x86-64 container-x86-64"
exit
fi
IMAGE="$1"
CONTAINER="$2"
TAG="$3"
IMAGE_CONTAINER_NAME="$4"
MACHINE="$5"
echo "image name: ${IMAGE}"
echo "container name: ${CONTAINER}"
echo "tag: ${TAG}"
echo "docker user: ${DOCKER_USER}"
echo "docker password: ${DOCKER_PW}"
echo "image container name: ${IMAGE_CONTAINER_NAME}"
echo "machine: ${MACHINE}"
echo "if there is a repository on docker hub called:"
echo "docker://docker.io/${DOCKER_USER}/${CONTAINER}"
echo "press <ENTER>"
read r
set -x
#skopeo inspect docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq '.Layers'
skopeo inspect --raw docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq
skopeo list-tags docker://${DOCKER_USER}/${CONTAINER}
set +x
echo "Which tag to delete?"
read TAG_TO_DELETE
echo "we'll delete this: ${TAG_TO_DELETE}"
login_data() {
cat <<EOF
{
"username": "${DOCKER_USER}",
"password": "${DOCKER_PW}"
}
EOF
}
set -x
# get token to be able to talk to Docker Hub
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PW}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
curl "https://hub.docker.com/v2/repositories/${DOCKER_USER}/${CONTAINER}/tags/${TAG_TO_DELETE}/" \
-X DELETE \
-H "Authorization: JWT ${TOKEN}"
skopeo list-tags docker://${DOCKER_USER}/${CONTAINER}
#set -x
#cd /workdir/build/${IMAGE_CONTAINER_NAME}/tmp/deploy/images/${MACHINE}/
#set +x
#retVal=$?
#if [ $retVal -ne 0 ]; then
# echo "can not cd into"
# /workdir/build/${IMAGE_CONTAINER_NAME}/tmp/deploy/images/${MACHINE}/
# echo "press <ENTER>"
# read r
# exit $retVal
#fi
#set -x
# clean up
#rm -rf unzip && mkdir unzip && cd unzip
# untar the OCI stuff
#ls -la ../${IMAGE}*.tar
#
#tar xvf ../${IMAGE}*.tar
#set +x
#OCI="$(ls)"
#echo "+ vi ${OCI}/index.json"
#echo "press <ENTER>"
#read r
#vi ${OCI}/index.json
#set -x
# hack to fix wrong entry in index.json for armv7
#sed -i 's/\\"variant\\"/"variant"/g' ${OCI}/index.json
#skopeo --debug copy --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}
#skopeo --debug copy -f v2s2 --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}
#skopeo --debug copy -f v2s2 --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}:${TAG}
#skopeo copy -f v2s2 --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}
#TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
#echo "TIMESTAMP: ${TIMESTAMP}"
#function docker_tag_exists() {
# TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PW}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
# curl --silent -f --head -lL https://hub.docker.com/v2/repositories/$1/tags/$2/ > /dev/null
#}
#if docker_tag_exists library/${CONTAINER} ${TAG}; then
# echo exist
#else
# echo not exists
#fi
# check local oci image which yocto created - good
#skopeo inspect oci:${OCI} | jq '.Layers'
#skopeo inspect --raw oci:${OCI} | jq
# check already uploaded (previous) docker container on docker hub - good
#skopeo inspect docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq '.Layers'
#skopeo inspect --raw docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq
#skopeo inspect docker-archive:${CONTAINER}-${TAG}.skopeo.tar:${DOCKER_USER}/${CONTAINER} | jq '.Layers'
# if the above are identical, there is no need to go any further, I guess
# if they are not identical, we need to upload a new one
#read r
# --> create a local docker-archive - note docker-archive digest is different from above
#if [ -f ${CONTAINER}-${TAG}.skopeo.tar ]; then
# rm -f ${CONTAINER}-${TAG}.skopeo.tar
#fi
#skopeo copy oci:${OCI} docker-archive:${CONTAINER}-${TAG}.skopeo.tar.docker-archive:${DOCKER_USER}/${CONTAINER}
# also create one with timestamp
#skopeo copy oci:${OCI}:latest docker-archive:${CONTAINER}-${TAG}-${TIMESTAMP}.skopeo.tar:${DOCKER_USER}/${CONTAINER}
# <-- create a local docker-archive - note docker-archive digest is different from above
# --> check locally converted oci -> docker-archive image - MEEEHH docker-archive adds something so we get a new checksum
# skopeo inspect docker-archive:${CONTAINER}-${TAG}.skopeo.tar | jq '.Layers'
# skopeo inspect --raw docker-archive:${CONTAINER}-${TAG}.skopeo.tar.docker-archive | jq
# <-- check locally converted oci -> docker-archive image - MEEEHH docker-archive adds something so we get a new checksum
# --> let's pull docker-archive from docker hub - MEEEHH docker-archive adds something so we get a new checksum
# skopeo copy docker://${DOCKER_USER}/${CONTAINER}:${TAG} docker-archive:${CONTAINER}-${TAG}.skopeo.tar.docker-archive-from-docker:${DOCKER_USER}/${CONTAINER}
# skopeo inspect --raw docker-archive:${CONTAINER}-${TAG}.skopeo.tar.docker-archive-from-docker | jq
# <-- let's pull docker-archive from docker hub - MEEEHH docker-archive adds something so we get a new checksum
# --> let's pull oci image from docker hub - now we are good with checksum ;)
# skopeo copy docker://${DOCKER_USER}/${CONTAINER}:${TAG} oci:${CONTAINER}-${TAG}.skopeo.tar.oci-from-docker:${DOCKER_USER}/${CONTAINER}
# skopeo inspect --raw oci:${CONTAINER}-${TAG}.skopeo.tar.oci-from-docker | jq
# <-- let's pull oci image from docker hub - now we are good with checksum ;)
#skopeo inspect docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq '.Layers'
#read r
# --> upload new image to docker hub
#skopeo --debug copy -f v2s2 --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}:${TAG}
# also with timestamp tag
#skopeo --debug copy -f v2s2 --dest-creds ${DOCKER_USER}:${DOCKER_PW} oci:${OCI}:latest docker://${DOCKER_USER}/${CONTAINER}:${TAG}-${TIMESTAMP}
# <-- upload new image to docker hub
# --> check our newly created stuff
# check local oci image which yocto created - good
#skopeo inspect oci:${OCI} | jq '.Layers'
#skopeo inspect --raw oci:${OCI} | jq
# check already uploaded (previous) docker container on docker hub - good
#skopeo inspect docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq '.Layers'
#skopeo inspect --raw docker://${DOCKER_USER}/${CONTAINER}:${TAG} | jq
# <-- check out newly created stuff
set +x
cd ${HERE}
#echo "try:"
#echo "docker pull docker.io/${DOCKER_USER}/${CONTAINER}"
#echo "docker pull docker.io/${DOCKER_USER}/${CONTAINER}:${TAG}"
#echo "docker pull docker.io/${DOCKER_USER}/${CONTAINER}:${TAG}-${TIMESTAMP}"