fix: add Docker Compose V2 support for all management scripts

Add docker-compose-helper.sh to auto-detect and use:
- docker-compose (V1 - standalone)
- docker compose (V2 - plugin)

Update all 9 management scripts to use the helper:
- start.sh, stop.sh, restart.sh
- logs.sh, status.sh
- backup.sh, restore.sh, update.sh, cleanup.sh

This fixes "docker-compose: command not found" error on systems
with Docker Compose V2 installed.

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 17:47:49 +08:00
parent 9ea9eb4b61
commit ea11288642
10 changed files with 78 additions and 16 deletions

View File

@@ -3,6 +3,10 @@
set -e
# 載入 docker compose 輔助函數
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/docker-compose-helper.sh"
# 備份目錄
BACKUP_DIR="./backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
@@ -16,7 +20,7 @@ echo ""
# 1. 備份資料庫
echo "📦 備份 PostgreSQL 資料庫..."
docker-compose exec -T database pg_dump -U codimd codimd > "$BACKUP_DIR/database_$TIMESTAMP.sql"
docker_compose exec -T database pg_dump -U codimd codimd > "$BACKUP_DIR/database_$TIMESTAMP.sql"
if [ $? -eq 0 ]; then
DB_SIZE=$(du -h "$BACKUP_DIR/database_$TIMESTAMP.sql" | cut -f1)
@@ -56,7 +60,7 @@ CodiMD 備份資訊
- 環境設定: env_$TIMESTAMP.env
還原方式:
1. 資料庫: cat database_$TIMESTAMP.sql | docker-compose exec -T database psql -U codimd codimd
1. 資料庫: cat database_$TIMESTAMP.sql | docker_compose exec -T database psql -U codimd codimd
2. 上傳檔案: tar -xzf uploads_$TIMESTAMP.tar.gz
3. 環境設定: cp env_$TIMESTAMP.env .env
EOF