File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -26,10 +26,8 @@ func NewKillCommand(dockerCli command.Cli) *cobra.Command {
2626 Short : "Kill one or more running containers" ,
2727 Args : cli .RequiresMinArgs (1 ),
2828 RunE : func (cmd * cobra.Command , args []string ) error {
29- for _ , name := range args {
30- if ! cli .CheckContainerName (name ) {
31- return fmt .Errorf ("container name %s is invalid" , name )
32- }
29+ if err := cli .CheckContainerNames (args ... ); err != nil {
30+ return err
3331 }
3432 opts .containers = args
3533 return runKill (dockerCli , & opts )
Original file line number Diff line number Diff line change @@ -29,10 +29,8 @@ func NewRmCommand(dockerCli command.Cli) *cobra.Command {
2929 Short : "Remove one or more containers" ,
3030 Args : cli .RequiresMinArgs (1 ),
3131 RunE : func (cmd * cobra.Command , args []string ) error {
32- for _ , name := range args {
33- if ! cli .CheckContainerName (name ) {
34- return fmt .Errorf ("container name %s is invalid" , name )
35- }
32+ if err := cli .CheckContainerNames (args ... ); err != nil {
33+ return err
3634 }
3735 opts .containers = args
3836 return runRm (dockerCli , & opts )
Original file line number Diff line number Diff line change @@ -28,10 +28,8 @@ func NewStopCommand(dockerCli command.Cli) *cobra.Command {
2828 Short : "Stop one or more running containers" ,
2929 Args : cli .RequiresMinArgs (1 ),
3030 RunE : func (cmd * cobra.Command , args []string ) error {
31- for _ , name := range args {
32- if ! cli .CheckContainerName (name ) {
33- return fmt .Errorf ("container name %s is invalid" , name )
34- }
31+ if err := cli .CheckContainerNames (args ... ); err != nil {
32+ return err
3533 }
3634 opts .containers = args
3735 opts .timeChanged = cmd .Flags ().Changed ("time" )
Original file line number Diff line number Diff line change 11package cli
22
33import (
4+ "fmt"
5+ "regexp"
46 "strings"
5-
6- "github.com/docker/cli/cli/names"
77)
88
99var (
10- validContainerNamePattern = names . RestrictedNamePattern
10+ validContainerNamePattern = regexp . MustCompile ( "^[a-zA-Z0-9][a-zA-Z0-9_.-]+$" )
1111)
1212
1313// CheckContainerName check container's name is valid or not
14- func CheckContainerName (name string ) bool {
15- if len (name ) == 0 {
16- return false
14+ func CheckContainerName (name string ) error {
15+ if ! validContainerNamePattern .MatchString (strings .TrimPrefix (name , "/" )) {
16+ return fmt .Errorf ("container name %s is invalid" , name )
17+ }
18+ return nil
19+ }
20+
21+ // CheckContainerNames check containers' name is valid or not
22+ func CheckContainerNames (names ... string ) error {
23+ for _ , name := range names {
24+ err := CheckContainerName (name )
25+ if err != nil {
26+ return err
27+ }
1728 }
18- return validContainerNamePattern . MatchString ( strings . TrimPrefix ( name , "/" ))
29+ return nil
1930}
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments