diff --git a/.gitignore b/.gitignore index c0a5924..57bd19c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist .env .ledo-mode main +ledo diff --git a/app/cmd/docker/build.go b/app/cmd/docker/build.go index dbcbaaa..418231f 100644 --- a/app/cmd/docker/build.go +++ b/app/cmd/docker/build.go @@ -7,7 +7,8 @@ import ( ) var CmdComposeBuild = cli.Command{ - Name: "pull", + Name: "build", + Aliases: []string{"b"}, Usage: "build docker image", Description: `Build all docker images`, Action: RunComposeBuild, diff --git a/app/cmd/docker/run.go b/app/cmd/docker/run.go index 532f192..097520e 100644 --- a/app/cmd/docker/run.go +++ b/app/cmd/docker/run.go @@ -8,14 +8,19 @@ import ( var CmdComposeRun = cli.Command{ Name: "run", + Aliases: []string{"r"}, Usage: "run cmd in main container", Description: `Run command in main container`, + ArgsUsage: "[]", Action: RunComposeRun, } func RunComposeRun(cmd *cli.Context) error { ctx := context.InitCommand(cmd) - compose.ExecComposerRun(ctx) + if cmd.Args().Len() >= 1 { + compose.ExecComposerRun(ctx, cmd.Args()) + return nil + } return nil } diff --git a/app/cmd/docker/shell.go b/app/cmd/docker/shell.go index 3bb7934..f27ca21 100644 --- a/app/cmd/docker/shell.go +++ b/app/cmd/docker/shell.go @@ -8,6 +8,7 @@ import ( var CmdComposeShell = cli.Command{ Name: "shell", + Aliases: []string{"sh"}, Usage: "run shell from main service", Description: `Execute shell cmd in main service`, Action: RunComposeShell, diff --git a/app/cmd/docker/stop.go b/app/cmd/docker/stop.go index c2203d1..1624261 100644 --- a/app/cmd/docker/stop.go +++ b/app/cmd/docker/stop.go @@ -10,7 +10,7 @@ var CmdComposeStop = cli.Command{ Name: "stop", Usage: "stop containers", Description: `Stop all containers defined in docker-compose stack mode`, - Action: RunComposePull, + Action: RunComposeStop, } func RunComposeStop(cmd *cli.Context) error { diff --git a/app/modules/compose/compose.go b/app/modules/compose/compose.go index b7043ba..f6b368d 100644 --- a/app/modules/compose/compose.go +++ b/app/modules/compose/compose.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "github.com/Masterminds/semver" + "github.com/urfave/cli/v2" "gopkg.in/yaml.v3" "io/ioutil" "ledo/app/modules/context" @@ -147,9 +148,13 @@ func ExecComposerDebug(ctx *context.LedoContext) { ctx.ExecCmd("docker-compose", args[0:]) } -func ExecComposerRun(ctx *context.LedoContext) { +func ExecComposerRun(ctx *context.LedoContext, command cli.Args) { args := ctx.ComposeArgs - args = append(args, "run", strings.ToLower(ctx.Config.Docker.MainService), ctx.Config.Docker.Shell) + args = append(args, "run", strings.ToLower(ctx.Config.Docker.MainService)) + if ctx.Config.Docker.Username != "" { + args = append(args, "sudo", "-E", "-u", ctx.Config.Docker.Username) + } + args = append(args, command.Slice()...) ctx.ExecCmd("docker-compose", args[0:]) } diff --git a/app/modules/config/ledofile.go b/app/modules/config/ledofile.go index 6c91eba..0ac461e 100644 --- a/app/modules/config/ledofile.go +++ b/app/modules/config/ledofile.go @@ -17,6 +17,7 @@ type DockerMap struct { Name string `yaml:"name,omitempty"` MainService string `yaml:"main_service,omitempty"` Shell string `yaml:"shell,omitempty"` + Username string `yaml:"username,omitempty"` } func NewLedoFile(s string) (*LedoFile, error) {