{"owner":"microsoft","repo":"agent-framework","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"dotnet/samples/05-end-to-end/AspNetAgentAuthorization/docker-compose.yml","servicesCount":4,"services":[{"name":"keycloak","image":"quay.io/keycloak/keycloak:latest","command":"start-dev --import-realm","ports":["5002:8080"],"environment":["KC_BOOTSTRAP_ADMIN_USERNAME=admin","KC_BOOTSTRAP_ADMIN_PASSWORD=admin","KC_HOSTNAME_STRICT=false","KC_PROXY_HEADERS=xforwarded"],"volumes":["./keycloak/dev-realm.json:/opt/keycloak/data/import/dev-realm.json"]},{"name":"keycloak-init","image":"curlimages/curl:latest","environment":["KEYCLOAK_URL=http://keycloak:8080","CODESPACE_NAME=${CODESPACE_NAME:-}","GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN=${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN:-}"],"volumes":["./keycloak/setup-redirect-uris.sh:/setup-redirect-uris.sh:ro"],"depends_on":["keycloak"]},{"name":"agent-service","build":{"context":"../../..","dockerfile":"samples/05-end-to-end/AspNetAgentAuthorization/Service/Dockerfile"},"ports":["5001:5001"],"environment":["ASPNETCORE_ENVIRONMENT=Development","Auth__Authority=http://keycloak:8080/realms/dev","Auth__Audience=agent-service","OPENAI_API_KEY=${OPENAI_API_KEY}","OPENAI_MODEL=${OPENAI_MODEL:-gpt-4.1-mini}"],"depends_on":["keycloak"]},{"name":"web-client","build":{"context":"../../..","dockerfile":"samples/05-end-to-end/AspNetAgentAuthorization/RazorWebClient/Dockerfile"},"ports":["8080:8080"],"environment":["ASPNETCORE_ENVIRONMENT=Development","Auth__Authority=http://keycloak:8080/realms/dev","Auth__PublicKeycloakUrl=http://localhost:5002","Auth__ClientId=web-client","AgentService__BaseUrl=http://agent-service:5001","CODESPACE_NAME=${CODESPACE_NAME:-}","GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN=${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN:-}"],"volumes":["web-client-keys:/app/keys"],"depends_on":["keycloak","agent-service"]}],"exposedPorts":["5002","5001","8080"],"dockerRunCommand":"docker run -d --name agent-framework -p 5002:5002 --restart always quay.io/keycloak/keycloak:latest","podmanRunCommand":"podman run -d --name agent-framework -p 5002:5002 --restart always quay.io/keycloak/keycloak:latest","skopeoInspectCommand":"skopeo inspect docker://quay.io/keycloak/keycloak:latest","orasPullCommand":"oras pull quay.io/keycloak/keycloak:latest","registryMeta":{"provider":"quay","image":"quay.io/keycloak/keycloak:latest","canonicalImage":"quay.io/keycloak/keycloak:latest","latestTag":"latest","multiArch":["linux/amd64","linux/arm64"],"cliCommands":{"dockerRun":"docker run -d --name agent-framework -p 5002:5002 --restart always quay.io/keycloak/keycloak:latest","dockerPull":"docker pull quay.io/keycloak/keycloak:latest","podmanRun":"podman run -d --name agent-framework -p 5002:5002 --restart always quay.io/keycloak/keycloak:latest","skopeoInspect":"skopeo inspect docker://quay.io/keycloak/keycloak:latest","orasPull":"oras pull quay.io/keycloak/keycloak:latest","composeYaml":"services:\n  agent-framework:\n    image: quay.io/keycloak/keycloak:latest\n    restart: unless-stopped\n    ports:\n      - \"5002:5002\""}}}