Files
ewoooc/docker/superset/docker-compose.yml
ogt 1b4f3a7bbe
Some checks failed
CD Pipeline / deploy (push) Failing after 59s
feat: EwoooC 初始化 — 完整專案推版至 Gitea
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 01:21:13 +08:00

114 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# Apache Superset - Docker Compose 配置
# MOMO Pro System - UAT 環境
# 用途BI 分析平台,連接 UAT、GCP、DEV 環境資料庫
# =============================================================================
#
# 重要Apache Superset 官方映像存在 theme.js 0 bytes bug
# 所有版本1.5.3, 2.0.x, 2.1.x, 3.x, 4.x都有這個問題
# 此配置包含啟動時自動修復腳本
# =============================================================================
services:
superset:
# 使用 2.1.3 版本 (3.x/4.x 的 theme.js 有 0 bytes bug)
image: apache/superset:2.1.3
container_name: momo-superset
restart: unless-stopped
ports:
- "127.0.0.1:8088:8088"
environment:
# 基本設定
- SUPERSET_SECRET_KEY=wooo_superset_secret_key_2026_momo_pro
- SUPERSET_LOAD_EXAMPLES=no
- TZ=Asia/Taipei
# 資料庫連線 (Superset 內部 metadata)
- DATABASE_HOST=superset-db
- DATABASE_PORT=5432
- DATABASE_USER=superset
- DATABASE_PASSWORD=Wooo_Superset_DB_2026
- DATABASE_DB=superset
# Redis 快取
- REDIS_HOST=superset-redis
- REDIS_PORT=6379
volumes:
- superset_home:/app/superset_home
- ./superset_config.py:/app/pythonpath/superset_config.py:ro
# theme.js 修復文件
- ./custom-assets/theme.entry.js:/tmp/theme-fix.js:ro
depends_on:
superset-db:
condition: service_healthy
superset-redis:
condition: service_healthy
networks:
- superset-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8088/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
command: >
bash -c "
echo '等待資料庫初始化...' &&
sleep 10 &&
echo '修復 theme.js 0-byte bug...' &&
for f in /app/superset/static/assets/theme.*.entry.js; do
if [ -f \"$$f\" ] && [ ! -s \"$$f\" ]; then
cp /tmp/theme-fix.js \"$$f\" &&
echo \"已修復: $$f\"
fi
done &&
superset db upgrade &&
superset fab create-admin --username admin --firstname Admin --lastname User --email admin@wooo.work --password Wooo_Superset_2026 || true &&
superset init &&
echo 'Superset 啟動中...' &&
gunicorn --bind 0.0.0.0:8088 --workers 4 --timeout 120 --access-logfile - 'superset.app:create_app()'
"
superset-db:
image: postgres:15-alpine
container_name: superset-postgres
restart: unless-stopped
environment:
- POSTGRES_USER=superset
- POSTGRES_PASSWORD=Wooo_Superset_DB_2026
- POSTGRES_DB=superset
- TZ=Asia/Taipei
volumes:
- superset_db:/var/lib/postgresql/data
networks:
- superset-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U superset"]
interval: 10s
timeout: 5s
retries: 5
superset-redis:
image: redis:7-alpine
container_name: superset-redis
restart: unless-stopped
volumes:
- superset_redis:/data
networks:
- superset-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
superset_home:
superset_db:
superset_redis:
networks:
superset-network:
driver: bridge