Skip to content

Commit 8923297

Browse files
committed
fixed syncer [sync git] [lwpm]
Signed-off-by: Kang Huaishuai <khs1994@khs1994.com>
1 parent 36d6345 commit 8923297

File tree

8 files changed

+73
-17
lines changed

8 files changed

+73
-17
lines changed

dockerfile/s6/.github/workflows/ci.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ jobs:
3939
.
4040
- run: docker run --rm ubuntu sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
4141
- run: docker run --rm centos:7 sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
42-
- run: docker run --rm centos sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
42+
- run: docker run --rm rockylinux sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
4343
- run: docker run --rm fedora sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
44-
4544
- run: docker run --rm alpine sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
4645
- run: docker run --rm debian sh -cx "ls -la / ; if [ -h /bin ];then echo 1;fi"
4746
- run: docker image ls

dockerfile/sync/.github/workflows/ci.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ jobs:
88
ci:
99
runs-on: ubuntu-latest
1010
steps:
11+
- run: |
12+
docker pull moby/buildkit
13+
- uses: azure/docker-login@v1
14+
with:
15+
username: ${{ secrets.DOCKER_USERNAME }}
16+
password: ${{ secrets.DOCKER_PASSWORD }}
17+
- run: |
18+
docker pull moby/buildkit
1119
- run: |
1220
docker manifest inspect moby/buildkit
1321
- run: |
@@ -30,3 +38,18 @@ jobs:
3038
DOCKER_PASSWORD: ${{secrets.GHCR_IO_TOKEN}}
3139
DOCKERIO_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
3240
name: Sync docker image
41+
- run: |
42+
docker run -i --rm \
43+
-e DEST_DOCKER_USERNAME=${DOCKER_USERNAME} \
44+
-e DEST_DOCKER_PASSWORD=${DOCKER_PASSWORD} \
45+
-e DEST_DOCKER_REGISTRY=ghcr.io \
46+
-e DEST_NAMESPACE=dpsigs \
47+
-e CI=true \
48+
-e GITHUB_ACTIONS \
49+
-e LNMP_CN_ENV=false \
50+
-e CONFIG_URL=https://github.com/khs1994-docker/docker-image-sync/raw/master/docker-image-sync-ghcr-loginless.json \
51+
ghcr.io/khs1994/docker-image-sync
52+
env:
53+
DOCKER_USERNAME: khs1994
54+
DOCKER_PASSWORD: ${{secrets.GHCR_IO_TOKEN}}
55+
name: Sync docker image loginless
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[
2+
{
3+
"source": "ghcr.io/php/pie:bin",
4+
"dest": "pie:bin"
5+
},
6+
{
7+
"source": "quay.io/fluentd_elasticsearch/elasticsearch:v7.16.2",
8+
"dest": "elasticsearch:v7.16.2"
9+
}
10+
]

dockerfile/sync/docker-image-sync-ghcr.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,6 @@
5959
"source": "docker/dockerfile-upstream:1.17.1",
6060
"dest": "docker-dockerfile-upstream:1.17.1"
6161
},
62-
{
63-
"source": "quay.io/fluentd_elasticsearch/elasticsearch:v7.16.2",
64-
"dest": "elasticsearch:v7.16.2"
65-
},
6662
{
6763
"source": "library/alpine:3.22",
6864
"dest": "alpine:3.22"
@@ -94,9 +90,5 @@
9490
{
9591
"source": "library/golang:1.24-alpine",
9692
"dest": "golang:1.24-alpine"
97-
},
98-
{
99-
"source": "ghcr.io/php/pie:bin",
100-
"dest": "pie:bin"
10193
}
10294
]

windows/docker-image-sync.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Function _upload_blob($dest_token, $dest_image, $digest, $dest_registry,
7878
$source_token, $source_image, $source_registry, $media_type
7979
) {
8080
try {
81-
$blob_exists = Test-Blob $dest_token $dest_image $digest $dest_registry
81+
$blob_exists = Test-Blob $dest_token $dest_image $digest $header $dest_registry
8282
}
8383
catch {
8484
write-host "==> [error] check blob error, skip" -ForegroundColor Red
@@ -90,7 +90,7 @@ Function _upload_blob($dest_token, $dest_image, $digest, $dest_registry,
9090
}
9191

9292
if (!$blob_exists) {
93-
$blob_dest = Get-Blob $source_token $source_image $digest $source_registry
93+
$blob_dest = Get-Blob $source_token $source_image $digest $media_type $source_registry
9494
if (!$blob_dest) {
9595
write-host "==> [error] get blob error" -ForegroundColor Red
9696
if ($env:GITHUB_ACTIONS) {

windows/lnmp-windows-pm.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,9 @@ Function _getlwpmConfig($image, $ref) {
407407

408408
$config_digest = $result.config.digest
409409

410-
$dest = Get-Blob $token $image $config_digest $registry
410+
$header = $result.config.mediaType
411+
412+
$dest = Get-Blob $token $image $config_digest $header $registry
411413

412414
return Get-Content $dest
413415
}

windows/sdk/dockerhub/blobs/get.psm1

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,17 @@ function Test-SHA256($filename) {
2626
return $true
2727
}
2828

29-
function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$registry = "registry.hub.docker.com", $dist) {
29+
function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$header = '', [string]$registry = "registry.hub.docker.com", $dist) {
3030
Write-Host "==> Digest: $digest" -ForegroundColor Green
3131
$sha256 = $digest.split(':')[1]
3232
$prefix = $sha256.Substring(0, 2)
3333
New-Item -force -type Directory (Get-CachePath blobs/sha256/$prefix) | out-null
3434
$distTemp = Get-CachePath "blobs/sha256/$prefix/$sha256"
3535

36+
if (!$header) {
37+
$header = [DockerImageSpec]::layer
38+
}
39+
3640
if (Test-Path $distTemp) {
3741
if (Test-SHA256 $distTemp) {
3842
Write-Host "==> File already exists, skip download" -ForegroundColor Green
@@ -47,7 +51,7 @@ function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$regi
4751
$response = Invoke-WebRequest `
4852
-Authentication OAuth `
4953
-Token (ConvertTo-SecureString $token -Force -AsPlainText) `
50-
-Headers @{"Accept" = [DockerImageSpec]::layer } `
54+
-Headers @{"Accept" = $header } `
5155
"https://$registry/v2/$image/blobs/$digest" `
5256
-PassThru `
5357
-OutFile $distTemp `
@@ -59,6 +63,8 @@ function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$regi
5963

6064
$statusCode = $response.StatusCode
6165

66+
write-host $response
67+
6268
if (!$statusCode) {
6369
Write-Host $_.Exception
6470

@@ -67,7 +73,7 @@ function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$regi
6773
elseif ($statusCode -lt 400 -and $statusCode -gt 200) {
6874
$url = $response.Headers.Location
6975

70-
# Write-Host "==> Redirect to $url" -ForegroundColor Magenta
76+
Write-Host "==> Redirect to $url" -ForegroundColor Magenta
7177

7278
try {
7379
Invoke-WebRequest `
@@ -82,6 +88,28 @@ function Get-Blob([string]$token, [string]$image, [string]$digest, [string]$regi
8288
return $false
8389
}
8490
}
91+
elseif ($statusCode -eq 400) {
92+
try {
93+
$response = Invoke-WebRequest `
94+
-Authentication OAuth `
95+
-Token (ConvertTo-SecureString $token -Force -AsPlainText) `
96+
-Headers @{"Accept" = $header } `
97+
"https://$registry/v2/$image/blobs/$digest" `
98+
-PassThru `
99+
-OutFile $distTemp `
100+
-UserAgent "Docker-Client/20.10.16 (Windows)"
101+
}
102+
catch {
103+
$response = $_.Exception.Response
104+
105+
write-host $response
106+
107+
$statusCode = $response.StatusCode
108+
Write-Host "==> Get blob failed [ $statusCode ]" -ForegroundColor Red
109+
110+
return $false
111+
}
112+
}
85113
else {
86114
Write-Host "==> Get blob failed [ $statusCode ]" -ForegroundColor Red
87115

windows/sdk/dockerhub/rootfs.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,11 @@ Please check DOCKER_USERNAME DOCKER_PASSWORD env value
157157

158158
if ($index -eq 'config') {
159159
$digest = $result.config.digest
160+
$header = $result.config.mediaType
160161
}
161162
else {
162163
$digest = $result.layers[$index].digest
164+
$header = $result.layers[$index].mediaType
163165
}
164166

165167
if (!$digest) {
@@ -170,7 +172,7 @@ Please check DOCKER_USERNAME DOCKER_PASSWORD env value
170172
continue
171173
}
172174

173-
$dest = Get-Blob $token $image $digest $registry $dest
175+
$dest = Get-Blob $token $image $digest $header $registry $dest
174176

175177
if ($dest -eq $false) {
176178
write-host "==> Download failed" -ForegroundColor Red

0 commit comments

Comments
 (0)