42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
|
#!/bin/bash
|
|||
|
WIPE=false
|
|||
|
if [ "$1" == "--wipe" ]; then
|
|||
|
WIPE=true
|
|||
|
fi
|
|||
|
|
|||
|
# 載入 .env 中的變數
|
|||
|
if [ -f .env ]; then
|
|||
|
export $(grep -v '^#' .env | xargs)
|
|||
|
echo "📦 .env 載入完成"
|
|||
|
else
|
|||
|
echo "❌ 沒有找到 .env,無法載入環境變數"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
# 使用 .env 中的 APP_NAME 作為 project name
|
|||
|
PROJECT_NAME="${APP_NAME}"
|
|||
|
NETWORK_NAME="${APP_NAME}_network"
|
|||
|
|
|||
|
|
|||
|
# 組合額外參數(如果有需要清除 volume 與 image)
|
|||
|
EXTRA_FLAGS=""
|
|||
|
if [ "$WIPE" == "true" ]; then
|
|||
|
EXTRA_FLAGS="-v --rmi all"
|
|||
|
# 檢查並建立 network(如果不存在)
|
|||
|
if ! docker network ls --format '{{.Name}}' | grep -wq "$NETWORK_NAME"; then
|
|||
|
echo "🔌 Docker 網路 $NETWORK_NAME 不存在"
|
|||
|
else
|
|||
|
docker network rm $NETWORK_NAME
|
|||
|
echo "🔌 Docker 網路 $NETWORK_NAME 已刪除"
|
|||
|
fi
|
|||
|
fi
|
|||
|
|
|||
|
echo "🛑 Stopping APP services..."
|
|||
|
docker compose -p "$PROJECT_NAME" -f docker-compose.app.yml down $EXTRA_FLAGS
|
|||
|
|
|||
|
if [ "$WIPE" == "true" ]; then
|
|||
|
echo "🧹 所有資料(volumes, image)已清除!"
|
|||
|
else
|
|||
|
echo "✅ 所有服務 $PROJECT_NAME 已成功關閉。"
|
|||
|
fi
|