docker hub中继k8s镜像

概览:

先决条件

docker hub账号

Github账号,(需要使用github actions)

镜像列表

格式: 源镜像地址 自定义镜像名称前缀

images.txt,以nfs-subdir-external-provisioner为例。

1
k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 sig-storage 

actions配置

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
name: docker image wrapper

on:
push:
branches: [ "master" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Pull & Rename Images
run: |
IFS=$'\n\n' && for img in $(cat images.txt);do echo $img | awk '{print $1}'| xargs -I {} docker pull {};done
IFS=$'\n\n' && for img in $(cat images.txt);do echo $img | awk '{print $1}' | awk -F/ '{print $NF}' | xargs -I {} docker tag $(echo $img | awk '{print $1}') ka1i137/$(echo $img | awk '{print $2}')-{} ;done
- name: Show Images
run: |
docker images
docker images| grep ka1i137
- name: Push Images
run: |
for img in $(docker images| grep ka1i137 | awk -v OFS=':' '{print $1,$2}');do docker push $img ;done

关联docker hub

docker官方文档: github-actions

验证镜像

传送门

代码仓库: image-wrapper

镜像仓库: ka1i137