@@ -26,7 +26,7 @@ import (
2626 "github.com/compose-spec/compose-go/v2/types"
2727)
2828
29- func ApplyExtends (ctx context.Context , dict map [string ]any , workingdir string , opts * Options , tracker * cycleTracker , post ... PostProcessor ) error {
29+ func ApplyExtends (ctx context.Context , dict map [string ]any , opts * Options , tracker * cycleTracker , post ... PostProcessor ) error {
3030 a , ok := dict ["services" ]
3131 if ! ok {
3232 return nil
@@ -71,14 +71,15 @@ func ApplyExtends(ctx context.Context, dict map[string]any, workingdir string, o
7171 if err != nil {
7272 return err
7373 }
74- relworkingdir := filepath .Dir (local )
75- if ! filepath .IsAbs (local ) {
76- relworkingdir , err = filepath .Rel (workingdir , relworkingdir )
77- if err != nil {
78- return err
79- }
80- }
74+ localdir := filepath .Dir (local )
75+ relworkingdir := loader .Dir (path )
76+
8177 extendsOpts := opts .clone ()
78+ extendsOpts .ResourceLoaders = append ([]ResourceLoader {}, opts .ResourceLoaders ... )
79+ // replace localResourceLoader with a new flavour, using extended file base path
80+ extendsOpts .ResourceLoaders [len (opts .ResourceLoaders )- 1 ] = localResourceLoader {
81+ WorkingDir : localdir ,
82+ }
8283 extendsOpts .ResolvePaths = true
8384 extendsOpts .SkipNormalization = true
8485 extendsOpts .SkipConsistencyCheck = true
0 commit comments