---
title: "Docker認証情報の欠落がCI/CDパイプラインを静かに破壊した問題（とその修正方法） | grasys blog"
url: "https://blog.grasys.io/post/komal-teke/dockercredentials-cicdpipeline/"
description: "はじめに 私のCI/CDパイプラインは、Pulumiを使ってGoogle CloudにデプロイするマルチステージのGitHub Actionsワークフローで、完璧に見えました。Google CloudとAWSへの認証、 pulumi up の実行、そしてSlack通知の送信まで、すべてが正常に実行されていました。すべ…"
---

# Docker認証情報の欠落がCI/CDパイプラインを静かに破壊した問題（とその修正方法）

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[Komal Teke](/authors/komal-teke/)
-   公開日：2026年2月18日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#CI/CD](/tags/ci-cd/)[#Google Cloud](/tags/google-cloud/)

![Docker認証情報の欠落がCI/CDパイプラインを静かに破壊した問題（とその修正方法）](/_astro/hero.-vTCoiOo_WtoJc.webp)

## **はじめに**

私のCI/CDパイプラインは、Pulumiを使ってGoogle CloudにデプロイするマルチステージのGitHub Actionsワークフローで、完璧に見えました。Google CloudとAWSへの認証、`pulumi up`の実行、そしてSlack通知の送信まで、すべてが正常に実行されていました。すべてがグリーン（成功）でした。しかし、アプリケーションは更新されていませんでした。原因は、Docker認証のためのたった一行の欠落でした。この記事では、この静かで重大な問題を発見し、修正する方法を紹介します。

## **セットアップ： “完璧な”デプロイワークフロー**

このワークフローは堅牢に設計されていました。Workload Identity Federationを利用してGoogle Cloudに安全に認証し、`pulumi up`を実行し、デプロイ前にはコミットSHAの検証まで行っていました。以下は、私のGitHub Actionsファイルから抜粋したセットアップの概要です。

![CI/CDパイプライン用Docker認証の設定例](/_astro/01-image-1024x795-ffa67ee0.6oXI_tP8_Z1sNedA.webp)

## **問題の症状と根本原因**

不可解だったのは、`pulumi up`コマンドが成功を報告していたことです。Pulumiは新しいイメージタグをデプロイしていると認識していました。しかし、その裏で`docker push`がPulumiプロセス内で静かに失敗していたため、実際には古い既存のイメージを再デプロイしていただけでした。

## **解決の鍵：欠けていた認証ステップ**

根本的な原因は、GitHub ActionsのランナーはGoogle Cloudの一般的なAPI呼び出しに対して認証されていた（`google-github-actions/auth`のおかげで）ものの、Dockerクライアント自体は認証されていなかったことでした。そのため、Google Artifact Registryにプッシュするための認証情報がなかったのです。

修正は、Google Cloudのメイン認証の直後に配置する、たった一つのシンプルなステップでした。

**追加した認証ステップ:**

![解決の鍵：欠けていた認証ステップの画面](/_astro/02-image-5-1024x237-096ec915.n9Mft18w_1wHQDr.webp)

このコマンドは、（すでに認証済みの）gcloud CLIを使用してDockerクライアントを設定します。これを追加することで、Pulumiが内部で`docker push`を呼び出す際に認証が機能し、新しいイメージがプッシュされ、デプロイが正しく成功するようになります。

## **結論：すべてのツールを認証せよ**

私の重要な学びはシンプルでした。**CI/CDランナーを認証することと、それが使用するツールを認証することは同じではない**、ということです。

1.  **ランナーの認証**: `google-github-actions/auth`のようなアクションを使い、ワークフローに全般的なクラウドアクセス権を付与する。
    
2.  **クライアントの認証**: Docker（`gcloud auth configure-docker`）、Terraformなどの特定のクライアントツールに対して、認証情報を明示的に設定する。
    

見かけ上の『成功』と、実際の『反映』が一致しないケースが存在します。デプロイの信頼性を高め、成功を本物にするために、あなたのツールチェーン内のすべてのツールが必要な認証情報を持っていることを確認してください。

* * *

## この記事を書いた人

[![](/_astro/komal-teke.vvtJae1f_ZxagEz.webp)](/authors/komal-teke/)

### [Komal Teke](/authors/komal-teke/)

Google Cloud、データエンジニアリング、生成AIを中心に、クラウド技術の検証や実装に取り組んでいます。

[プロフィールと記事一覧](/authors/komal-teke/)