mirror of
https://github.com/docker/compose.git
synced 2025-07-27 07:34:10 +02:00
fix support for secret set by env inside included file
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
432ae23b0e
commit
ea07ba8e2a
@ -45,11 +45,15 @@ func (s *composeService) injectSecrets(ctx context.Context, project *types.Proje
|
|||||||
config.Target = "/run/secrets/" + config.Target
|
config.Target = "/run/secrets/" + config.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
env, ok := project.Environment[file.Environment]
|
content := file.Content
|
||||||
if !ok {
|
if content == "" {
|
||||||
return fmt.Errorf("environment variable %q required by secret %q is not set", file.Environment, file.Name)
|
env, ok := project.Environment[file.Environment]
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("environment variable %q required by secret %q is not set", file.Environment, file.Name)
|
||||||
|
}
|
||||||
|
content = env
|
||||||
}
|
}
|
||||||
b, err := createTar(env, types.FileReferenceConfig(config))
|
b, err := createTar(content, types.FileReferenceConfig(config))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
10
pkg/e2e/fixtures/env-secret/child/compose.yaml
Normal file
10
pkg/e2e/fixtures/env-secret/child/compose.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
included:
|
||||||
|
image: alpine
|
||||||
|
secrets:
|
||||||
|
- my-secret
|
||||||
|
command: cat /run/secrets/my-secret
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
my-secret:
|
||||||
|
environment: 'MY_SECRET'
|
@ -1,3 +1,8 @@
|
|||||||
|
include:
|
||||||
|
- path: child/compose.yaml
|
||||||
|
env_file:
|
||||||
|
- secret.env
|
||||||
|
|
||||||
services:
|
services:
|
||||||
foo:
|
foo:
|
||||||
image: alpine
|
image: alpine
|
||||||
|
1
pkg/e2e/fixtures/env-secret/secret.env
Normal file
1
pkg/e2e/fixtures/env-secret/secret.env
Normal file
@ -0,0 +1 @@
|
|||||||
|
MY_SECRET='this-is-secret'
|
@ -41,3 +41,13 @@ func TestSecretFromEnv(t *testing.T) {
|
|||||||
res.Assert(t, icmd.Expected{Out: "-r--r----- 1 1005 1005"})
|
res.Assert(t, icmd.Expected{Out: "-r--r----- 1 1005 1005"})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSecretFromInclude(t *testing.T) {
|
||||||
|
c := NewParallelCLI(t)
|
||||||
|
defer c.cleanupWithDown(t, "env-secret-include")
|
||||||
|
|
||||||
|
t.Run("compose run", func(t *testing.T) {
|
||||||
|
res := c.RunDockerComposeCmd(t, "-f", "./fixtures/env-secret/compose.yaml", "run", "included")
|
||||||
|
res.Assert(t, icmd.Expected{Out: "this-is-secret"})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user