func PsCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "ps", Usage: "List containers", Action: app.WithProject(factory, app.ProjectPs), } }
// PullCommand defines the libcompose pull subcommand. func PullCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "pull", Usage: "Pulls images for services", Action: app.WithProject(factory, app.ProjectPull), } }
// UpCommand defines the libcompose up subcommand. func UpCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "up", Usage: "Bring all services up", Action: app.WithProject(factory, app.ProjectUp), Flags: []cli.Flag{ cli.BoolFlag{ Name: "d", Usage: "Do not block and log", }, cli.BoolFlag{ Name: "no-build", Usage: "Don't build an image, even if it's missing.", }, cli.BoolFlag{ Name: "no-recreate", Usage: "If containers already exist, don't recreate them. Incompatible with --force-recreate.", }, cli.BoolFlag{ Name: "force-recreate", Usage: "Recreate containers even if their configuration and image haven't changed. Incompatible with --no-recreate.", }, }, } }
// BuildCommand defines the libcompose build subcommand. func BuildCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "build", Usage: "Build or rebuild services.", Action: app.WithProject(factory, app.ProjectBuild), } }
// CreateCommand defines the libcompose create subcommand. func CreateCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "create", Usage: "Create all services but do not start", Action: app.WithProject(factory, app.ProjectCreate), } }
// UnpauseCommand defines the libcompose unpause subcommand. func UnpauseCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "unpause", Usage: "Unpause services.", // ArgsUsage: "[SERVICE...]", Action: app.WithProject(factory, app.ProjectUnpause), } }
// DownCommand defines the libcompose stop subcommand. func DownCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "down", Usage: "Stop and remove containers, networks, images, and volumes", Action: app.WithProject(factory, app.ProjectDown), Flags: []cli.Flag{}, } }
// RunCommand defines the libcompose run subcommand. func RunCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "run", Usage: "Run a one-off command", Action: app.WithProject(factory, app.ProjectRun), Flags: []cli.Flag{}, } }
// PullCommand defines the libcompose pull subcommand. func PullCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "pull", Usage: "Pulls images for services", Action: app.WithProject(factory, app.ProjectPull), Flags: []cli.Flag{ cli.BoolFlag{ Name: "ignore-pull-failures", Usage: "Pull what it can and ignores images with pull failures.", }, }, } }
func UpCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "up", Usage: "Bring all services up", Action: app.WithProject(factory, app.ProjectUp), Flags: []cli.Flag{ cli.BoolFlag{ Name: "d", Usage: "Do not block and log", }, }, } }
// ConfigCommand defines the libcompose config subcommand func ConfigCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "config", Usage: "Validate and view the compose file.", Action: app.WithProject(factory, app.ProjectConfig), Flags: []cli.Flag{ cli.BoolFlag{ Name: "quiet,q", Usage: "Only validate the configuration, don't print anything.", }, }, } }
// LogsCommand defines the libcompose logs subcommand. func LogsCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "logs", Usage: "Get service logs", Action: app.WithProject(factory, app.ProjectLog), Flags: []cli.Flag{ cli.BoolFlag{ Name: "follow", Usage: "Follow log output.", }, }, } }
func RmCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "rm", Usage: "Delete services", Action: app.WithProject(factory, app.ProjectDelete), Flags: []cli.Flag{ cli.BoolFlag{ Name: "force,f", Usage: "Allow deletion of all services", }, }, } }
// PsCommand defines the libcompose ps subcommand. func PsCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "ps", Usage: "List containers", Action: app.WithProject(factory, app.ProjectPs), Flags: []cli.Flag{ cli.BoolFlag{ Name: "q", Usage: "Only display IDs", }, }, } }
// RunCommand defines the libcompose run subcommand. func RunCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "run", Usage: "Run a one-off command", Action: app.WithProject(factory, app.ProjectRun), Flags: []cli.Flag{ cli.BoolFlag{ Name: "d", Usage: "Detached mode: Run container in the background, print new container name.", }, }, } }
// BuildCommand defines the libcompose build subcommand. func BuildCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "build", Usage: "Build or rebuild services.", Action: app.WithProject(factory, app.ProjectBuild), Flags: []cli.Flag{ cli.BoolFlag{ Name: "no-cache", Usage: "Do not use cache when building the image", }, }, } }
// StartCommand defines the libcompose start subcommand. func StartCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "start", Usage: "Start services", Action: app.WithProject(factory, app.ProjectStart), Flags: []cli.Flag{ cli.BoolTFlag{ Name: "d", Usage: "Do not block and log", }, }, } }
// EventsCommand defines the libcompose events subcommand func EventsCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "events", Usage: "Receive real time events from containers.", Action: app.WithProject(factory, app.ProjectEvents), Flags: []cli.Flag{ cli.BoolFlag{ Name: "json", Usage: "Output events as a stream of json objects", }, }, } }
func PullCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "pull", Usage: "Pulls images for services", Action: app.WithProject(factory, app.ProjectPull), Flags: []cli.Flag{ cli.BoolFlag{ Name: "cached, c", Usage: "Only update hosts that have the image cached, don't pull new", }, }, } }
// LogsCommand defines the libcompose logs subcommand. func LogsCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "logs", Usage: "Get service logs", Action: app.WithProject(factory, app.ProjectLog), Flags: []cli.Flag{ cli.IntFlag{ Name: "lines", Usage: "number of lines to tail", Value: 100, }, }, } }
// KillCommand defines the libcompose kill subcommand. func KillCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "kill", Usage: "Force stop service containers", Action: app.WithProject(factory, app.ProjectKill), Flags: []cli.Flag{ cli.StringFlag{ Name: "signal,s", Usage: "SIGNAL to send to the container", Value: "SIGKILL", }, }, } }
// ScaleCommand defines the libcompose scale subcommand. func ScaleCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "scale", Usage: "Scale services", Action: app.WithProject(factory, app.ProjectScale), Flags: []cli.Flag{ cli.IntFlag{ Name: "timeout,t", Usage: "Specify a shutdown timeout in seconds.", Value: 10, }, }, } }
// StopCommand defines the libcompose stop subcommand. func StopCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "stop", ShortName: "down", Usage: "Stop services", Action: app.WithProject(factory, app.ProjectDown), Flags: []cli.Flag{ cli.IntFlag{ Name: "timeout,t", Usage: "Specify a shutdown timeout in seconds.", Value: 10, }, }, } }
// RmCommand defines the libcompose rm subcommand. func RmCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "rm", Usage: "Delete services", Action: app.WithProject(factory, app.ProjectDelete), Flags: []cli.Flag{ cli.BoolFlag{ Name: "force,f", Usage: "Allow deletion of all services", }, cli.BoolFlag{ Name: "v", Usage: "Remove volumes associated with containers", }, }, } }
func UpCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "up", Usage: "Bring all services up", Action: app.WithProject(factory, ProjectUp), Flags: []cli.Flag{ cli.BoolFlag{ Name: "pull, p", Usage: "Before doing the upgrade do an image pull on all hosts that have the image already", }, cli.BoolFlag{ Name: "d", Usage: "Do not block and log", }, cli.BoolFlag{ Name: "upgrade, u, recreate", Usage: "Upgrade if service has changed", }, cli.BoolFlag{ Name: "force-upgrade, force-recreate", Usage: "Upgrade regardless if service has changed", }, cli.BoolFlag{ Name: "confirm-upgrade, c", Usage: "Confirm that the upgrade was success and delete old containers", }, cli.BoolFlag{ Name: "rollback, r", Usage: "Rollback to the previous deployed version", }, cli.IntFlag{ Name: "batch-size", Usage: "Number of containers to upgrade at once", Value: 2, }, cli.IntFlag{ Name: "interval", Usage: "Update interval in milliseconds", Value: 1000, }, }, } }
// PortCommand defines the libcompose port subcommand. func PortCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "port", Usage: "Print the public port for a port binding", Action: app.WithProject(factory, app.ProjectPort), Flags: []cli.Flag{ cli.StringFlag{ Name: "protocol", Usage: "tcp or udp ", Value: "tcp", }, cli.IntFlag{ Name: "index", Usage: "index of the container if there are multiple instances of a service", Value: 1, }, }, } }
func RestartCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "restart", Usage: "Restart services", Action: app.WithProject(factory, app.ProjectRestart), Flags: []cli.Flag{ cli.IntFlag{ Name: "batch-size", Usage: "Number of containers to retart at once", Value: 1, }, cli.IntFlag{ Name: "interval", Usage: "Restart interval in milliseconds", Value: 0, }, }, } }
// BuildCommand defines the libcompose build subcommand. func BuildCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "build", Usage: "Build or rebuild services.", Action: app.WithProject(factory, app.ProjectBuild), Flags: []cli.Flag{ cli.BoolFlag{ Name: "no-cache", Usage: "Do not use cache when building the image", }, cli.BoolFlag{ Name: "force-rm", Usage: "Always remove intermediate containers", }, cli.BoolFlag{ Name: "pull", Usage: "Always attempt to pull a newer version of the image", }, }, } }
// DownCommand defines the libcompose stop subcommand. func DownCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "down", Usage: "Stop and remove containers, networks, images, and volumes", Action: app.WithProject(factory, app.ProjectDown), Flags: []cli.Flag{ cli.BoolFlag{ Name: "volumes,v", Usage: "Remove data volumes", }, cli.StringFlag{ Name: "rmi", Usage: "Remove images, type may be one of: 'all' to remove all images, or 'local' to remove only images that don't have an custom name set by the `image` field", }, cli.BoolFlag{ Name: "remove-orphans", Usage: "Remove containers for services not defined in the Compose file", }, }, } }
func UpgradeCommand(factory app.ProjectFactory) cli.Command { return cli.Command{ Name: "upgrade", Usage: "Perform rolling upgrade between services", Action: app.WithProject(factory, Upgrade), Flags: []cli.Flag{ cli.IntFlag{ Name: "batch-size", Usage: "Number of containers to upgrade at once", Value: 2, }, cli.IntFlag{ Name: "scale", Usage: "Final number of running containers", Value: -1, }, cli.IntFlag{ Name: "interval", Usage: "Update interval in milliseconds", Value: 2000, }, cli.BoolTFlag{ Name: "update-links", Usage: "Update inbound links on target service", }, cli.BoolFlag{ Name: "wait,w", Usage: "Wait for upgrade to complete", }, cli.BoolFlag{ Name: "pull, p", Usage: "Before doing the upgrade do an image pull on all hosts that have the image already", }, cli.BoolFlag{ Name: "cleanup, c", Usage: "Remove the original service definition once upgraded, implies --wait", }, }, } }