kkato.dev

Hi there 👋

Welcome to my website!

GitHub Container Registry (ghcr.io) の使い方

GitHub Container Registry (ghcr.io) は、GitHub が提供するコンテナイメージのレジストリです。 Public Packages であれば無料で利用でき、GitHub Actions と組み合わせることでデータ転送料金も無料になります。 ghcr.io は2通りの使い方があります。 ローカルから Docker CLI を使ってイメージをビルドしてプッシュする方法 GitHub Actions を使ってコードの変更に合わせて自動でイメージをビルドしてプッシュする方法 今回はGitHub Actions を使って自動でイメージをビルドしてプッシュする方法を紹介します。 GitHub Actions から自動でプッシュする GitHub Actions を使えば、コードをプッシュするだけで自動的にイメージのビルドとプッシュができます。以下はワークフローの例です。 name: Docker Build and Push on: push: branches: - main # GHCR へのプッシュには packages: write が必要 permissions: contents: read packages: write jobs: build-and-push: runs-on: ubuntu-latest steps: # ソースコードをチェックアウト - name: Check out code uses: actions/checkout@v4 # ghcr.io にログイン - name: Log in to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} # デフォルトの GITHUB_TOKEN を利用 password: ${{ secrets.GITHUB_TOKEN }} # Docker イメージをビルドしてプッシュ - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: . push: true tags: ghcr.io/${{ github.repository }}:latest トラブルシューティング GitHub Actions から ghcr.io にプッシュする際に、以下のようなエラーが出ました。 ...

February 28, 2026 · Ken Kato

PostgreSQL Operatorの比較

Kubernetes上でPostgreSQLを運用するためのOperatorが複数存在します。以前どれを選ぶか検討する機会があったので、主要な4つのオペレーターを比較してみました。 比較表 PGO CloudNativePG Zalando StackGres 開発元 Crunchy Data EDB / CNCF Zalando OnGres GitHub Stars 4,400 8,000 5,100 1,400 ライセンス (Operator) Apache 2.0 Apache 2.0 MIT AGPL-3.0 ライセンス (コンテナイメージ) 独自 (制限あり) Apache 2.0 MIT AGPL-3.0 Patroni 使用 不使用 (独自実装) 使用 (Patroni開発元) 使用 CNCF - Sandbox - - Star History 各オペレーターの特徴 PGO (Crunchy Data) Crunchy Data社が開発するオペレーターで、Patroniを使ったHAに対応しています。Operator自体のソースコードはApache 2.0ですが、Crunchy Data が配布するコンテナイメージは独自のライセンス(Crunchy Data Developer Program)で提供されています。50名以上の組織では本番利用に有償サブスクリプションが必要になるため、注意が必要です。自前でイメージをビルドすれば回避できますが、手間がかかります。 CloudNativePG EDBが開発を始め、現在はCNCF Sandboxプロジェクトになっています。Patroniに依存せず、独自のInstance Managerが各Pod内で動作し、Kubernetes APIを直接利用してリーダー選出やフェイルオーバーを行います。ライセンスもOperator・コンテナイメージともにApache 2.0で、制限なく利用できます。Star数も最も多く、コミュニティの勢いがあります。 ...

February 20, 2026 · Ken Kato

Argo CDをインストールしてみた

Argo CDはKubernetes向けのGitOpsツールで、Gitリポジトリに置いたマニフェストをクラスタに自動で反映してくれます。 今回はHelmを使ってArgo CDをインストールし、リポジトリの接続からApplicationの作成までを試してみました。 Argo CDのインストール Helm Chartリポジトリを追加します。 helm repo add argo https://argoproj.github.io/argo-helm helm repo update argocd namespaceにインストールします。 helm install argocd argo/argo-cd \ --namespace argocd \ --create-namespace \ --version 7.8.13 Podが正常に起動していることを確認します。 kubectl get pods -n argocd Argo CD UIにアクセスする port-forwardでArgo CDのUIにアクセスできます。 kubectl port-forward svc/argocd-server -n argocd 8080:443 ブラウザで http://localhost:8080 にアクセスします。 初期パスワードは以下のコマンドで取得できます。ユーザー名はadminです。 kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d Gitリポジトリを接続する Argo CDがGitリポジトリからマニフェストを取得するために、リポジトリの接続設定が必要です。 SSH鍵の作成 Argo CD専用のSSH鍵を作成します。 ssh-keygen -t ed25519 -f ~/.ssh/argocd -C "argocd" -N "" GitHubにDeploy Keyを登録 生成した公開鍵をリポジトリのDeploy Keyとして登録します。 ...

February 20, 2026 · Ken Kato

vim tips

移動 キー 説明 } / { 次/前の空行へ移動 % 対応する括弧へ移動 Operator と Text Object Operator 説明 c change d delete y yank v visual Text Object は i(inner: 内側のみ)と a(a: 囲み文字も含む)の2種類がある。 Text Object 説明 iw 単語の内側 aw 単語 + 周囲の空白 i" "..." の内側 a" "..." 全体(引用符含む) i( (...) の内側 a( (...) 全体(括弧含む) i{ {...} の内側 a{ {...} 全体(波括弧含む) it HTMLタグの内側 at HTMLタグ全体(タグ含む) 例 説明 ciw 単語を削除して挿入モード di" ダブルクォート内を削除 ya( 括弧ごとコピー 参考文献 なれる! Vimmer

February 1, 2026 · Ken Kato

netrwの操作コマンド

netrw(Neovim内蔵ファイルブラウザ) キー / コマンド 動作 :Ex カレントディレクトリを開く :Vex 垂直分割で開く :Sex 水平分割で開く <CR> ファイル/ディレクトリを開く v 垂直分割で開く o 水平分割で開く t タブで開く % 新規ファイル作成 d ディレクトリ作成 D 削除 R リネーム - 上のディレクトリへ i 表示形式を切り替え ペイン操作 キー / コマンド 動作 :vs ファイル名 垂直分割でファイルを開く :sp ファイル名 水平分割でファイルを開く Ctrl+w h/j/k/l 左/下/上/右へ移動 Ctrl+w c 閉じる Ctrl+w o 他を全て閉じる Ctrl+w = 均等サイズ タブ操作 キー / コマンド 動作 :tabnew 新規タブ :tabe ファイル名 ファイルをタブで開く gt / gT 次/前のタブ :tabclose タブを閉じる

February 1, 2026 · Ken Kato