ci: use docker login -p instead of --password-stdin, add debug

Suspect that echo + pipe to --password-stdin may be mangling the Jenkins
masked password variable. Switch to -p (command-line password) for a
cleaner auth path and add debug output to inspect /root/.docker/config.json
after login.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 20:48:42 +08:00
co-authored by Claude Opus 4.8
parent 06921cbb3e
commit 02a0b1bd87
Vendored
+8 -6
View File
@@ -157,9 +157,11 @@ pipeline {
.
echo "=== Pushing \$PLAT_REF ==="
# Re-login immediately before push — Harbor tokens can be
# short-lived and expire during long QEMU builds.
echo "\$DOCKER_PASSWORD" | sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" --password-stdin 2>&1 | tail -1
# Re-login immediately before push — use -p to avoid any
# stdin piping issues with the masked Jenkins variable.
sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" -p "\$DOCKER_PASSWORD" 2>&1 | tail -1
echo "DEBUG: auth config after login:" >&2
sudo cat /root/.docker/config.json 2>/dev/null | head -5 >&2
sudo docker push "\$PLAT_REF" 2>&1 | tail -5
sudo docker push "\$PLAT_LATEST" 2>&1 | tail -5
@@ -169,7 +171,7 @@ pipeline {
echo ''
echo "=== Creating multi-arch manifest: ${API_IMAGE_TAGGED} ==="
echo "\$DOCKER_PASSWORD" | sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" --password-stdin 2>&1 | tail -1
sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" -p "\$DOCKER_PASSWORD" 2>&1 | tail -1
sudo docker manifest create "${API_IMAGE_TAGGED}" \
"${API_IMAGE_TAGGED}-amd64" \
"${API_IMAGE_TAGGED}-arm64"
@@ -269,7 +271,7 @@ pipeline {
frontend
echo "=== Pushing \$PLAT_REF ==="
echo "\$DOCKER_PASSWORD" | sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" --password-stdin 2>&1 | tail -1
sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" -p "\$DOCKER_PASSWORD" 2>&1 | tail -1
sudo docker push "\$PLAT_REF" 2>&1 | tail -3
sudo docker push "\$PLAT_LATEST" 2>&1 | tail -3
sudo docker rmi "\$PLAT_REF" "\$PLAT_LATEST" 2>/dev/null || true
@@ -277,7 +279,7 @@ pipeline {
echo ''
echo "=== Creating multi-arch manifest: ${WEB_IMAGE_TAGGED} ==="
echo "\$DOCKER_PASSWORD" | sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" --password-stdin 2>&1 | tail -1
sudo docker login ${REGISTRY_URL} -u "\$DOCKER_USERNAME" -p "\$DOCKER_PASSWORD" 2>&1 | tail -1
sudo docker manifest create "${WEB_IMAGE_TAGGED}" \
"${WEB_IMAGE_TAGGED}-amd64" \
"${WEB_IMAGE_TAGGED}-arm64"