{"owner":"basecamp","repo":"kamal","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"test/integration/docker-compose.yml","servicesCount":9,"services":[{"name":"shared","build":{"context":"docker/shared"},"volumes":["shared:/shared"]},{"name":"deployer","build":{"context":"docker/deployer"},"environment":["TEST_ID=${TEST_ID:-}"],"volumes":["../..:/kamal","shared:/shared","deployer_bundle:/usr/local/bundle/","otel:/tmp/otel"],"depends_on":["shared"]},{"name":"registry","build":{"context":"docker/registry"},"environment":["REGISTRY_HTTP_ADDR=0.0.0.0:4443","REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt","REGISTRY_HTTP_TLS_KEY=/certs/domain.key"],"volumes":["shared:/shared","registry:/var/lib/registry/"],"depends_on":["shared"]},{"name":"hub-cache","image":"registry:3","environment":["REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io","REGISTRY_PROXY_USERNAME=${DOCKERHUB_USERNAME:-}","REGISTRY_PROXY_PASSWORD=${DOCKERHUB_TOKEN:-}"],"volumes":["hub-cache:/var/lib/registry"]},{"name":"vm1","build":{"context":"docker/vm"},"ports":["443"],"volumes":["shared:/shared"],"depends_on":["shared"]},{"name":"vm2","build":{"context":"docker/vm"},"volumes":["shared:/shared"],"depends_on":["shared"]},{"name":"vm3","build":{"context":"docker/vm"},"volumes":["shared:/shared"],"depends_on":["shared"]},{"name":"otel_collector","build":{"context":"docker/otel_collector"},"volumes":["otel:/tmp/otel"]},{"name":"load_balancer","build":{"context":"docker/load_balancer"},"ports":["80","443"],"depends_on":["vm1","vm2","vm3"]}],"exposedPorts":["443","80"],"dockerRunCommand":"docker run -d --name kamal -p 443:443 --restart always registry:3","podmanRunCommand":"podman run -d --name kamal -p 443:443 --restart always registry:3","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/registry:3","orasPullCommand":"oras pull registry:3","registryMeta":{"provider":"dockerhub","image":"library/registry","canonicalImage":"docker.io/library/registry:3","latestTag":"3","cliCommands":{"dockerRun":"docker run -d --name kamal -p 443:443 --restart always registry:3","dockerPull":"docker pull registry:3","podmanRun":"podman run -d --name kamal -p 443:443 --restart always registry:3","skopeoInspect":"skopeo inspect docker://docker.io/library/registry:3","orasPull":"oras pull registry:3","composeYaml":"services:\n  kamal:\n    image: registry:3\n    restart: unless-stopped\n    ports:\n      - \"443:443\""}}}