{"owner":"AIDC-AI","repo":"Pixelle-Video","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":3,"services":[{"name":"init","image":"alpine:latest","restart":"no","command":"sh -c '\n  if [ -d /workspace/config.yaml ]; then\n    echo \"⚠️  config.yaml is a directory, removing it...\";\n    rm -rf /workspace/config.yaml;\n  fi;\n  if [ ! -f /workspace/config.yaml ] && [ -f /workspace/config.example.yaml ]; then\n    echo \"📋 Creating config.yaml from config.example.yaml...\";\n    cp /workspace/config.example.yaml /workspace/config.yaml;\n    echo \"✅ config.yaml created successfully!\";\n  else\n    echo \"✅ config.yaml already exists.\";\n  fi\n'\n","volumes":["./:/workspace"]},{"name":"api","build":{"context":".","dockerfile":"Dockerfile"},"restart":"unless-stopped","command":".venv/bin/python api/app.py --host 0.0.0.0 --port 8000","ports":["8000:8000"],"environment":["TZ=Asia/Shanghai"],"volumes":["./config.yaml:/app/config.yaml","./data:/app/data","./output:/app/output"],"depends_on":["init"]},{"name":"web","build":{"context":".","dockerfile":"Dockerfile"},"restart":"unless-stopped","command":".venv/bin/streamlit run web/app.py --server.port 8501 --server.address 0.0.0.0","ports":["8501:8501"],"environment":["TZ=Asia/Shanghai","STREAMLIT_SERVER_PORT=8501","STREAMLIT_SERVER_ADDRESS=0.0.0.0","STREAMLIT_BROWSER_GATHER_USAGE_STATS=false"],"volumes":["./config.yaml:/app/config.yaml","./data:/app/data","./output:/app/output"],"depends_on":["init"]}],"exposedPorts":["8000","8501"],"dockerRunCommand":"docker run -d --name pixelle-video -p 8000:8000 --restart always alpine:latest","podmanRunCommand":"podman run -d --name pixelle-video -p 8000:8000 --restart always alpine:latest","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/alpine:latest","orasPullCommand":"oras pull alpine:latest","registryMeta":{"provider":"dockerhub","image":"library/alpine","canonicalImage":"docker.io/library/alpine:latest","latestTag":"latest","cliCommands":{"dockerRun":"docker run -d --name pixelle-video -p 8000:8000 --restart always alpine:latest","dockerPull":"docker pull alpine:latest","podmanRun":"podman run -d --name pixelle-video -p 8000:8000 --restart always alpine:latest","skopeoInspect":"skopeo inspect docker://docker.io/library/alpine:latest","orasPull":"oras pull alpine:latest","composeYaml":"services:\n  pixelle-video:\n    image: alpine:latest\n    restart: unless-stopped\n    ports:\n      - \"8000:8000\""}}}