Skip to content
This repository has been archived by the owner on Nov 27, 2023. It is now read-only.

Commit

Permalink
Merge pull request #1628 from ulyssessouza/add-bypass-envvar
Browse files Browse the repository at this point in the history
Support bypass envvars
  • Loading branch information
ndeloof authored May 7, 2021
2 parents 9432716 + f159bc4 commit db6978a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 20 deletions.
16 changes: 0 additions & 16 deletions api/compose/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,22 +247,6 @@ func (e Event) String() string {

}

// EnvironmentMap return RunOptions.Environment as a MappingWithEquals
func (opts *RunOptions) EnvironmentMap() types.MappingWithEquals {
environment := types.MappingWithEquals{}
for _, s := range opts.Environment {
parts := strings.SplitN(s, "=", 2)
key := parts[0]
switch {
case len(parts) == 1:
environment[key] = nil
default:
environment[key] = &parts[1]
}
}
return environment
}

// ListOptions group options of the ls API
type ListOptions struct {
All bool
Expand Down
3 changes: 2 additions & 1 deletion api/compose/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package compose
import (
"testing"

"github.com/compose-spec/compose-go/types"
"gotest.tools/v3/assert"
)

Expand All @@ -30,7 +31,7 @@ func TestRunOptionsEnvironmentMap(t *testing.T) {
"QIX",
},
}
env := opts.EnvironmentMap()
env := types.NewMappingWithEquals(opts.Environment)
assert.Equal(t, *env["FOO"], "BAR")
assert.Equal(t, *env["ZOT"], "")
assert.Check(t, env["QIX"] == nil)
Expand Down
11 changes: 8 additions & 3 deletions local/compose/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
return 0, err
}

applyRunOptions(&service, opts)
applyRunOptions(project, &service, opts)

slug := moby.GenerateRandomID()
if service.ContainerName == "" {
Expand Down Expand Up @@ -107,7 +107,7 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.

}

func applyRunOptions(service *types.ServiceConfig, opts compose.RunOptions) {
func applyRunOptions(project *types.Project, service *types.ServiceConfig, opts compose.RunOptions) {
service.Tty = opts.Tty
service.ContainerName = opts.Name

Expand All @@ -124,7 +124,12 @@ func applyRunOptions(service *types.ServiceConfig, opts compose.RunOptions) {
service.Entrypoint = opts.Entrypoint
}
if len(opts.Environment) > 0 {
service.Environment.OverrideBy(opts.EnvironmentMap())
env := types.NewMappingWithEquals(opts.Environment)
projectEnv := env.Resolve(func(s string) (string, bool) {
v, ok := project.Environment[s]
return v, ok
}).RemoveEmpty()
service.Environment.OverrideBy(projectEnv)
}
for k, v := range opts.Labels {
service.Labels.Add(k, v)
Expand Down

0 comments on commit db6978a

Please sign in to comment.