ACE-Step-1.5/docker-compose.yml
Gong Junmin 1337b8999d
feat(docker): add generic Dockerfile and CI auto-build workflow (#1211)
- Dockerfile: generic CUDA x86_64 image using uv for reproducible deps
- docker-compose.yml: one-command startup with GPU support
- container.yml: GitHub Actions workflow that builds and pushes to
  ghcr.io on tag push (v*) with semver tagging
- .dockerignore: add output/ dir, clean up Jetson-specific comments

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 21:54:32 +08:00

76 lines
2.1 KiB
YAML

# =============================================================================
# ACE-Step 1.5 — Docker Compose (generic CUDA)
# =============================================================================
#
# Usage:
# docker compose up # Start Gradio UI (default)
# docker compose up --build # Build and start
# docker compose up -d # Run in background
# docker compose down # Stop
# docker compose logs -f # View logs
#
# # Start REST API server instead:
# ACESTEP_MODE=api docker compose up
#
# =============================================================================
services:
acestep:
build:
context: .
dockerfile: Dockerfile
image: ghcr.io/ace-step/ace-step-1.5:latest
container_name: acestep
# ---- GPU access ----
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
# ---- Environment ----
env_file:
- path: .env
required: false
environment:
- NVIDIA_VISIBLE_DEVICES=all
- ACESTEP_MODE=${ACESTEP_MODE:-gradio}
- ACESTEP_LLM_BACKEND=${ACESTEP_LLM_BACKEND:-pt}
- ACESTEP_INIT_SERVICE=${ACESTEP_INIT_SERVICE:-true}
- ACESTEP_CONFIG_PATH=${ACESTEP_CONFIG_PATH:-acestep-v15-turbo}
- ACESTEP_LM_MODEL_PATH=${ACESTEP_LM_MODEL_PATH:-acestep-5Hz-lm-4B}
- ACESTEP_EXTRA_ARGS=${ACESTEP_EXTRA_ARGS:-}
- TOKENIZERS_PARALLELISM=false
# ---- Ports ----
ports:
- "${GRADIO_PORT:-7860}:7860"
- "${API_PORT:-8001}:8001"
# ---- Persistent volumes ----
volumes:
- ./checkpoints:/app/checkpoints
- hf_cache:/root/.cache/huggingface
- ./gradio_outputs:/app/gradio_outputs
- ./output:/app/output
# ---- Shared memory for PyTorch DataLoader ----
shm_size: "2gb"
restart: unless-stopped
healthcheck:
test: >-
curl -sf http://localhost:7860/ > /dev/null 2>&1 ||
curl -sf http://localhost:8001/health > /dev/null 2>&1 ||
exit 1
interval: 30s
timeout: 10s
start_period: 300s
retries: 3
volumes:
hf_cache: