Skip to content

Commit

Permalink
fix(registry): registry login failure EE-5832 (#22)
Browse files Browse the repository at this point in the history
  • Loading branch information
cmenginnz authored Aug 4, 2023
1 parent bf9902d commit 17b8030
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ import (
)

var errDeployComposeFailure = errors.New("stack deployment failure")
var errDockerLoginFailure = errors.New("docker login failure")
var errDockerLogoutFailure = errors.New("docker logout failure")

func (cmd *DeployCommand) Run(cmdCtx *CommandExecutionContext) error {
log.Info().
Expand Down Expand Up @@ -280,18 +278,23 @@ func dockerLogin(registries []string) error {
for _, registry := range registries {
credentials := strings.Split(registry, ":")
if len(credentials) != 3 {
return errDockerLoginFailure
log.Warn().
Str("registry", registry).
Msg("registry is malformed. Skip login it.")

continue
}

args := make([]string, 0)
args = append(args, "--config", PORTAINER_DOCKER_CONFIG_PATH, "login", "--username", credentials[0], "--password", credentials[1], credentials[2])

err := runCommandAndCaptureStdErr(command, args, nil, "")
if err != nil {
log.Error().
log.Warn().
Err(err).
Msg(fmt.Sprintf("Docker login %s failed", credentials[2]))
return errDockerLoginFailure
Msg(fmt.Sprintf("Docker login %s failed. Skip login it.", credentials[2]))

continue
}
log.Info().
Msg(fmt.Sprintf("Docker login %s successed", credentials[2]))
Expand All @@ -306,18 +309,23 @@ func dockerLogout(registries []string) error {
for _, registry := range registries {
credentials := strings.Split(registry, ":")
if len(credentials) != 3 {
return errDockerLogoutFailure
log.Warn().
Str("registry", registry).
Msg("registry is malformed. Skip logout it.")

continue
}

args := make([]string, 0)
args = append(args, "--config", PORTAINER_DOCKER_CONFIG_PATH, "logout", credentials[2])

err := runCommandAndCaptureStdErr(command, args, nil, "")
if err != nil {
log.Error().
log.Warn().
Err(err).
Msg(fmt.Sprintf("Docker logout %s failed", credentials[2]))
return errDockerLogoutFailure
Msg(fmt.Sprintf("Docker logout %s failed. Skip logout it.", credentials[2]))

continue
}
log.Info().
Msg(fmt.Sprintf("Docker logout %s successed", credentials[2]))
Expand Down

0 comments on commit 17b8030

Please sign in to comment.