diff --git a/src/main/java/com/nirima/jenkins/plugins/docker/DockerCloud.java b/src/main/java/com/nirima/jenkins/plugins/docker/DockerCloud.java index 38805850a..686b9c557 100644 --- a/src/main/java/com/nirima/jenkins/plugins/docker/DockerCloud.java +++ b/src/main/java/com/nirima/jenkins/plugins/docker/DockerCloud.java @@ -122,6 +122,13 @@ public class DockerCloud extends Cloud { @Restricted(NoExternalUse.class) static final Map> CONTAINERS_IN_PROGRESS = new HashMap<>(); + /** + * Disables slow Docker API capacity checks during provisioning. + * WARNING: When enabled, capacity limits are not enforced. + */ + private static final boolean DISABLE_PROVISION_CAPACITY_CHECK = Boolean.parseBoolean(System.getProperty( + "com.nirima.jenkins.plugins.docker.DockerCloud.DISABLE_PROVISION_CAPACITY_CHECK", "false")); + /** * Indicate if docker host used to run container is exposed inside container as DOCKER_HOST environment variable */ @@ -645,6 +652,11 @@ public int countContainersInDocker(final String imageName) throws Exception { * Check not too many already running. */ private boolean canAddProvisionedAgent(DockerTemplate t) throws Exception { + if (DISABLE_PROVISION_CAPACITY_CHECK) { + LOGGER.info("Provisioning '{}' without capacity check (disabled via system property)", t.getImage()); + return true; + } + final String templateImage = t.getImage(); final int templateContainerCap = t.instanceCap; final int cloudContainerCap = getContainerCap();