GitHub ActionsからSSH経由でDocker Compose サービスをゼロダウンタイム デプロイするアクション
中辛 の解説
Node.js やエージェント不要で、Bash と SSH だけで動作します。マイグレーション実行、イメージ取得、コンテナ更新、ポストデプロイ処理まで 1 つの SSH セッションで完結します。ヘルスチェックとコネクションドレイニング対応で、デプロイ中のリクエスト喪失をゼロに抑えられます。設定は YAML で簡潔です。
こんなリポジトリです
こんなときに便利です
- 本番環境への安全なデプロイ自動化、ダウンタイムなしで新バージョンに切り替え
- マイグレーション実行とデプロイの同時実施、デプロイ失敗時の自動ロールバック
- リクエスト喪失ゼロの達成、接続ドレイニングと健全性チェックによる確実な切り替え
主な機能
ほかとの違い
docker-rollout プラグインとコネクションドレイニング機構により、Kubernetes 不要でも本番環境レベルのゼロダウンタイムデプロイと自動ロールバックを実現しています。
このリポジトリの作り方
はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。
準備するもの
- Docker Compose v2 プラグイン搭載の Docker
- Bash 4.4 以上
- curl または wget(docker-rollout インストール用)
- SSH ユーザーが docker グループに属していること
- リバースプロキシ(Traefik、nginx-proxy、Caddy など)
すぐに始める
- リポジトリをチェックアウトします
git clone <repository-url>
cd <repository>
- SSH ホストキーを取得し、GitHub Secrets に登録します
ssh-keyscan -p 22 your.server
- ワークフロー YAML で docker-rollout-action を設定します
- uses: mtizima/docker-rollout-action@v1
with:
host: ${{ secrets.SSH_HOST }}
user: deploy
ssh-key: ${{ secrets.SSH_KEY }}
known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
project-dir: /opt/myapp
services: web
- ローカルテストを実行します(オプション)
bash test/run-local.sh
- GitHub Actions ワークフロー内で本アクションを実行します(自動)
ギット飯トライで味見
入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。
ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。
npx gitbap-try mtizima/docker-rollout-action
Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →
スター推移 · 7日
確認日時
使いやすさ · まねしやすいか
- ゆるいライセンス
- テストあり
- サンプル集
- 最近の更新
- AGENTS.md
- llms.txt
- テンプレート
最近の更新あり · 2026 年に作成
「DevOps・インフラ」 こういうリポジトリを毎週受け取りませんか?
毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。
自分のリポジトリですか? README にギット飯バッジを貼る
[](https://www.gitbap.com/r/mtizima/docker-rollout-action)Claude からそのまま使う — ギット飯のつなぎ方
ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。
Claude の設定 → コネクタにこのアドレスを貼り付け。
https://www.gitbap.com/api/mcpプラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI が README をもとに要約しました · 原文を見る