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
|
||||
}
|
||||
|
||||
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 := file.Content
|
||||
if content == "" {
|
||||
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 {
|
||||
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:
|
||||
foo:
|
||||
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"})
|
||||
})
|
||||
}
|
||||
|
||||
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