Documentation ¶
Index ¶
- Variables
- func GetServerURLFromTag(image string) (string, error)
- type Agent
- func (a *Agent) BuildLocal(opts *BuildOpts, dockerfilePath string) error
- func (a *Agent) ConnectContainerToNetwork(networkID, containerID, containerName string) error
- func (a *Agent) CreateBridgeNetwork(name string) (id string, err error)
- func (a *Agent) CreateBridgeNetworkIfNotExist(name string) (id string, err error)
- func (a *Agent) CreateLocalVolume(name string) (*types.Volume, error)
- func (a *Agent) CreateLocalVolumeIfNotExist(name string) (*types.Volume, error)
- func (a *Agent) PullImage(image string) error
- func (a *Agent) PushImage(image string) error
- func (a *Agent) RemoveLocalVolume(name string) error
- func (a *Agent) StartPorterContainer(opts PorterServerStartOpts) (string, error)
- func (a *Agent) StartPostgresContainer(opts PostgresOpts) (string, error)
- func (a *Agent) StopPorterContainers(remove bool) error
- func (a *Agent) StopPorterContainersWithProcessID(processID string, remove bool) error
- func (a *Agent) TagImage(old, new string) error
- func (a *Agent) WaitForContainerHealthy(id string, streak int) error
- func (a *Agent) WaitForContainerStop(id string) error
- type AuthEntry
- type AuthGetter
- func (a *AuthGetter) GetCredentials(serverURL string) (user string, secret string, err error)
- func (a *AuthGetter) GetDOCRCredentials(serverURL string, projID uint) (user string, secret string, err error)
- func (a *AuthGetter) GetDockerHubCredentials(serverURL string, projID uint) (user string, secret string, err error)
- func (a *AuthGetter) GetECRCredentials(serverURL string, projID uint) (user string, secret string, err error)
- func (a *AuthGetter) GetGCRCredentials(serverURL string, projID uint) (user string, secret string, err error)
- type BuildOpts
- type CredentialsCache
- type FileCredentialCache
- type PorterDB
- type PorterServerStartOpts
- type PorterStartOpts
- type PostgresOpts
- type PullImageEvent
- type RegistryCache
Constants ¶
This section is empty.
Variables ¶
var PullImageErrNotFound = fmt.Errorf("Requested image not found")
Functions ¶
func GetServerURLFromTag ¶ added in v0.4.0
Types ¶
type Agent ¶
type Agent struct {
// contains filtered or unexported fields
}
Agent is a Docker client for performing operations that interact with the Docker engine over REST
func NewAgentFromEnv ¶
NewAgentFromEnv creates a new Docker agent using the environment variables set on the host
func NewAgentWithAuthGetter ¶ added in v0.4.0
func StartPorter ¶
func StartPorter(opts *PorterStartOpts) (agent *Agent, id string, err error)
StartPorter creates a new Docker agent using the host environment, and creates a new Porter instance
func (*Agent) BuildLocal ¶ added in v0.4.0
BuildLocal
func (*Agent) ConnectContainerToNetwork ¶
ConnectContainerToNetwork attaches a container to a specified network
func (*Agent) CreateBridgeNetwork ¶
CreateBridgeNetwork creates a volume using the default driver type (bridge) with the CLI label attached
func (*Agent) CreateBridgeNetworkIfNotExist ¶
CreateBridgeNetworkIfNotExist creates a volume using driver type "local" with the given name if it does not exist. If the volume does exist but does not contain the required label (a.label), an error is thrown.
func (*Agent) CreateLocalVolume ¶
CreateLocalVolume creates a volume using driver type "local" with no configured options. The equivalent of:
docker volume create --driver local [name]
func (*Agent) CreateLocalVolumeIfNotExist ¶
CreateLocalVolumeIfNotExist creates a volume using driver type "local" with the given name if it does not exist. If the volume does exist but does not contain the required label (a.label), an error is thrown.
func (*Agent) RemoveLocalVolume ¶
RemoveLocalVolume removes a volume by name
func (*Agent) StartPorterContainer ¶
func (a *Agent) StartPorterContainer(opts PorterServerStartOpts) (string, error)
StartPorterContainer pulls a specific Porter image and starts a container using the Docker engine. It returns the container ID
func (*Agent) StartPostgresContainer ¶
func (a *Agent) StartPostgresContainer(opts PostgresOpts) (string, error)
StartPostgresContainer pulls a specific Porter image and starts a container using the Docker engine
func (*Agent) StopPorterContainers ¶
StopPorterContainers finds all containers that were started via the CLI and stops them -- removes the container if remove is set to true
func (*Agent) StopPorterContainersWithProcessID ¶
StopPorterContainersWithProcessID finds all containers that were started via the CLI and have a given process id and stops them -- removes the container if remove is set to true
func (*Agent) WaitForContainerHealthy ¶
WaitForContainerHealthy waits until a container is returning a healthy status. Streak is the maximum number of failures in a row, while timeout is the length of time between checks.
func (*Agent) WaitForContainerStop ¶
WaitForContainerStop waits until a container has stopped to exit
type AuthEntry ¶ added in v0.4.0
type AuthEntry struct { AuthorizationToken string RequestedAt time.Time ExpiresAt time.Time ProxyEndpoint string }
AuthEntry is a stored token for registry access with an expiration time.
type AuthGetter ¶ added in v0.4.0
type AuthGetter struct { Client *api.Client Cache CredentialsCache ProjectID uint }
AuthGetter retrieves
func (*AuthGetter) GetCredentials ¶ added in v0.4.0
func (a *AuthGetter) GetCredentials(serverURL string) (user string, secret string, err error)
func (*AuthGetter) GetDOCRCredentials ¶ added in v0.4.0
func (*AuthGetter) GetDockerHubCredentials ¶ added in v0.4.0
func (*AuthGetter) GetECRCredentials ¶ added in v0.4.0
func (*AuthGetter) GetGCRCredentials ¶ added in v0.4.0
type CredentialsCache ¶ added in v0.4.0
type CredentialsCache interface { Get(registry string) *AuthEntry Set(registry string, entry *AuthEntry) List() []*AuthEntry }
CredentialsCache is a simple interface for getting/setting auth credentials so that we don't request new tokens when previous ones haven't expired
func NewFileCredentialsCache ¶ added in v0.4.0
func NewFileCredentialsCache() CredentialsCache
NewFileCredentialsCache returns a new file credentials cache.
path is used for temporary files during save, and filename should be a relative filename in the same directory where the cache is serialized and deserialized.
cachePrefixKey is used for scoping credentials for a given credential cache (i.e. region and accessKey).
type FileCredentialCache ¶ added in v0.4.0
type FileCredentialCache struct {
// contains filtered or unexported fields
}
func (*FileCredentialCache) Clear ¶ added in v0.4.0
func (f *FileCredentialCache) Clear()
func (*FileCredentialCache) Get ¶ added in v0.4.0
func (f *FileCredentialCache) Get(registry string) *AuthEntry
func (*FileCredentialCache) List ¶ added in v0.4.0
func (f *FileCredentialCache) List() []*AuthEntry
List returns all of the available AuthEntries (regardless of prefix)
func (*FileCredentialCache) Set ¶ added in v0.4.0
func (f *FileCredentialCache) Set(registry string, entry *AuthEntry)
type PorterServerStartOpts ¶
type PorterServerStartOpts struct { Name string Image string StartCmd []string HostPort uint ContainerPort uint Mounts []mount.Mount VolumeMap map[string]struct{} Env []string NetworkID string }
PorterServerStartOpts are the options for starting the Porter server
type PorterStartOpts ¶
type PorterStartOpts struct { ProcessID string ServerImageTag string ServerPort int DB PorterDB Env []string }
PorterStartOpts are the options for starting the Porter stack
type PostgresOpts ¶
type PostgresOpts struct { Name string Image string Env []string VolumeMap map[string]struct{} Mounts []mount.Mount NetworkID string }
PostgresOpts are the options for starting the Postgres DB
type PullImageEvent ¶
type PullImageEvent struct { Status string `json:"status"` Error string `json:"error"` Progress string `json:"progress"` ProgressDetail struct { Current int `json:"current"` Total int `json:"total"` } `json:"progressDetail"` }
PullImageEvent represents a response from the Docker API with an image pull event