mirror of
https://github.com/docker/compose.git
synced 2026-08-27 03:45:29 +00:00
Move containers, compose, secrets to /api
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
This commit is contained in:
parent
9545625131
commit
d06aa2827f
46 changed files with 317 additions and 55 deletions
79
api/compose/api.go
Normal file
79
api/compose/api.go
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
Copyright 2020 Docker, Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License 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 compose
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"github.com/compose-spec/compose-go/types"
|
||||
)
|
||||
|
||||
// Service manages a compose project
|
||||
type Service interface {
|
||||
// Up executes the equivalent to a `compose up`
|
||||
Up(ctx context.Context, project *types.Project) error
|
||||
// Down executes the equivalent to a `compose down`
|
||||
Down(ctx context.Context, projectName string) error
|
||||
// Logs executes the equivalent to a `compose logs`
|
||||
Logs(ctx context.Context, projectName string, w io.Writer) error
|
||||
// Ps executes the equivalent to a `compose ps`
|
||||
Ps(ctx context.Context, projectName string) ([]ServiceStatus, error)
|
||||
// List executes the equivalent to a `docker stack ls`
|
||||
List(ctx context.Context, projectName string) ([]Stack, error)
|
||||
// Convert translate compose model into backend's native format
|
||||
Convert(ctx context.Context, project *types.Project) ([]byte, error)
|
||||
}
|
||||
|
||||
// PortPublisher hold status about published port
|
||||
type PortPublisher struct {
|
||||
URL string
|
||||
TargetPort int
|
||||
PublishedPort int
|
||||
Protocol string
|
||||
}
|
||||
|
||||
// ServiceStatus hold status about a service
|
||||
type ServiceStatus struct {
|
||||
ID string
|
||||
Name string
|
||||
Replicas int
|
||||
Desired int
|
||||
Ports []string
|
||||
Publishers []PortPublisher
|
||||
}
|
||||
|
||||
// State of a compose stack
|
||||
type State string
|
||||
|
||||
const (
|
||||
// STARTING indicates that stack is being deployed
|
||||
STARTING State = "starting"
|
||||
// RUNNING indicates that stack is deployed and services are running
|
||||
RUNNING State = "running"
|
||||
// UPDATING indicates that some stack resources are being recreated
|
||||
UPDATING State = "updating"
|
||||
// REMOVING indicates that stack is being deleted
|
||||
REMOVING State = "removing"
|
||||
)
|
||||
|
||||
// Stack holds the name and state of a compose application/stack
|
||||
type Stack struct {
|
||||
ID string
|
||||
Name string
|
||||
Status State
|
||||
}
|
||||
26
api/compose/tags.go
Normal file
26
api/compose/tags.go
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
Copyright 2020 Docker, Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License 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 compose
|
||||
|
||||
const (
|
||||
// ProjectTag allow to track resource related to a compose project
|
||||
ProjectTag = "com.docker.compose.project"
|
||||
// NetworkTag allow to track resource related to a compose network
|
||||
NetworkTag = "com.docker.compose.network"
|
||||
// ServiceTag allow to track resource related to a compose service
|
||||
ServiceTag = "com.docker.compose.service"
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue