// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). You may // not use this file except in compliance with the License. A copy of the // License is located at // // http://aws.amazon.com/apache2.0/ // // or in the "license" file accompanying this file. This file is distributed // on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either // express or implied. See the License for the specific language governing // permissions and limitations under the License. package dockerclient import "time" // Timelimits for docker operations enforced above docker const ( // ListImagesTimeout is the timeout for the ListImages API ListImagesTimeout = 10 * time.Minute // LoadImageTimeout is the timeout for the LoadImage API. It's set // to much lower value than pullImageTimeout as it involves loading // image from either a file or STDIN calls involved. // This value is set based on benchmarking the time of loading the pause container image, // since it's currently only used to load that image. If this is to be used to load any // other image in the future, additional benchmarking will be required. // Per benchmark, 2 min is roughly 4x of the worst case (29s) across 400 image loads on // al1/al2/al2gpu/al2arm with smallest instance type available (t2.nano/a1.medium) and // burst balance = 0. LoadImageTimeout = 2 * time.Minute // RemoveImageTimeout is the timeout for the RemoveImage API. RemoveImageTimeout = 3 * time.Minute // ListContainersTimeout is the timeout for the ListContainers API. ListContainersTimeout = 10 * time.Minute // InspectContainerTimeout is the timeout for the InspectContainer API. InspectContainerTimeout = 30 * time.Second // ContainerExecCreateTimeout is the timeout for the ContainerExecCreate API. ContainerExecCreateTimeout = 1 * time.Minute // ContainerExecStartTimeout is the timeout for the ContainerExecStart API. ContainerExecStartTimeout = 1 * time.Minute // ContainerExecInspectTimeout is the timeout for the ContainerExecInspect API. ContainerExecInspectTimeout = 1 * time.Minute // StopContainerTimeout is the timeout for the StopContainer API. StopContainerTimeout = 30 * time.Second // RemoveContainerTimeout is the timeout for the RemoveContainer API. RemoveContainerTimeout = 5 * time.Minute // CreateVolumeTimeout is the timeout for CreateVolume API. CreateVolumeTimeout = 5 * time.Minute // InspectVolumeTimeout is the timeout for InspectVolume API. InspectVolumeTimeout = 5 * time.Minute // RemoveVolumeTimeout is the timeout for RemoveVolume API. RemoveVolumeTimeout = 5 * time.Minute // ListPluginsTimeout is the timeout for ListPlugins API. ListPluginsTimeout = 1 * time.Minute // StatsInactivityTimeout controls the amount of time we hold open a // connection to the Docker daemon waiting for stats data. // We set this a few seconds below our stats publishling interval (20s) // so that we can disconnect and warn the user when metrics reporting // may be impacted. This is usually caused by a over-stressed docker daemon. StatsInactivityTimeout = 18 * time.Second // DockerPullBeginTimeout is the timeout from when a 'pull' is called to when // we expect to see output on the pull progress stream. This is to work // around a docker bug which sometimes results in pulls not progressing. DockerPullBeginTimeout = 5 * time.Minute // VersionTimeout is the timeout for the Version API VersionTimeout = 10 * time.Second // InfoTimeout is the timeout for the Info API InfoTimeout = 10 * time.Second )