Skip to content

Commit 5f7c9a2

Browse files
ndeloofglours
authored andcommitted
report error using non-file secret|config with read-only service
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
1 parent fd0c23a commit 5f7c9a2

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pkg/compose/secrets.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ func (s *composeService) injectSecrets(ctx context.Context, project *types.Proje
3535
continue
3636
}
3737

38+
if service.ReadOnly {
39+
return fmt.Errorf("cannot create secret %q in read-only service %s: `file` is the sole supported option", file.Name, service.Name)
40+
}
41+
3842
if config.Target == "" {
3943
config.Target = "/run/secrets/" + config.Source
4044
} else if !isAbsTarget(config.Target) {
@@ -43,7 +47,7 @@ func (s *composeService) injectSecrets(ctx context.Context, project *types.Proje
4347

4448
env, ok := project.Environment[file.Environment]
4549
if !ok {
46-
return fmt.Errorf("environment variable %q required by file %q is not set", file.Environment, file.Name)
50+
return fmt.Errorf("environment variable %q required by secret %q is not set", file.Environment, file.Name)
4751
}
4852
b, err := createTar(env, types.FileReferenceConfig(config))
4953
if err != nil {
@@ -67,14 +71,18 @@ func (s *composeService) injectConfigs(ctx context.Context, project *types.Proje
6771
if file.Environment != "" {
6872
env, ok := project.Environment[file.Environment]
6973
if !ok {
70-
return fmt.Errorf("environment variable %q required by file %q is not set", file.Environment, file.Name)
74+
return fmt.Errorf("environment variable %q required by config %q is not set", file.Environment, file.Name)
7175
}
7276
content = env
7377
}
7478
if content == "" {
7579
continue
7680
}
7781

82+
if service.ReadOnly {
83+
return fmt.Errorf("cannot create config %q in read-only service %s: `file` is the sole supported option", file.Name, service.Name)
84+
}
85+
7886
if config.Target == "" {
7987
config.Target = "/" + config.Source
8088
}

0 commit comments

Comments
 (0)