@@ -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