Skip to content

Panic when using extends without specifying service #777

@oscar-broman

Description

@oscar-broman

A panic occurred on this line: https://github.com/compose-spec/compose-go/blob/ca961cc58145b2b1b8221f2a0c4e9734772156fc/loader/extends.go#L71C4-L71C30

When I used a config such as:

  my-service:
    extends:
      file: ../other-project/docker-compose.yml
      # I forgot to put this:
      # service: other-service-name
panic: interface conversion: interface {} is nil, not string

goroutine 1 [running]:
github.com/compose-spec/compose-go/v2/loader.applyServiceExtends({0x10497ebc8, 0x140005160c0}, {0x14000495600, 0x9}, 0x14000517560, 0x14000134e10, 0x14000596ba0, {0x140005968a8, 0x1, 0x1})
	github.com/compose-spec/compose-go/[email protected]/loader/extends.go:71 +0x85c
github.com/compose-spec/compose-go/v2/loader.ApplyExtends({0x10497ebc8, 0x140005160c0}, 0x14000516840, 0x14000134e10, 0x14000596ba0, {0x140005968a8, 0x1, 0x1})
	github.com/compose-spec/compose-go/[email protected]/loader/extends.go:40 +0x124
github.com/compose-spec/compose-go/v2/loader.loadYamlFile.func1({0x1044dbe00?, 0x14000516600?}, {0x140005968a8, 0x1, 0x1})
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:448 +0x12c
github.com/compose-spec/compose-go/v2/loader.loadYamlFile({0x10497ec00, 0x14000469630}, {{0x1400049f800, 0x35}, {0x140002c2000, 0x779, 0x77a}, 0x0}, 0x14000134e10, {0x1400049f800, ...}, ...)
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:515 +0x440
github.com/compose-spec/compose-go/v2/loader.loadYamlModel({0x10497ec00, 0x14000469630}, {{0x0, 0x0}, {0x1400049f800, 0x22}, {0x140001330b0, 0x1, 0x1}, 0x14000132db0}, ...)
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:376 +0x110
github.com/compose-spec/compose-go/v2/loader.load({0x10497ec00, 0x14000469630}, {{0x0, 0x0}, {0x1400049f800, 0x22}, {0x140001330b0, 0x1, 0x1}, 0x14000132db0}, ...)
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:536 +0x260
github.com/compose-spec/compose-go/v2/loader.loadModelWithContext({0x10497ec00, 0x14000469630}, 0x14000510000, 0x14000134e10)
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:348 +0xc4
github.com/compose-spec/compose-go/v2/loader.LoadWithContext({0x10497ec00, 0x14000469630}, {{0x0, 0x0}, {0x1400049f800, 0x22}, {0x140001330b0, 0x1, 0x1}, 0x14000132db0}, ...)
	github.com/compose-spec/compose-go/[email protected]/loader/loader.go:324 +0xc8
github.com/compose-spec/compose-go/v2/cli.(*ProjectOptions).LoadProject(0x14000134c60, {0x10497ec00, 0x14000469630})
	github.com/compose-spec/compose-go/[email protected]/cli/options.go:446 +0xa0
github.com/docker/compose/v2/cmd/compose.(*ProjectOptions).ToProject(0x14000807e00, {0x10497ec00, 0x14000469630}, {0x1049a7300, 0x14000429400}, {0x105f5ad60, 0x0, 0x0}, {0x14000597728, 0x2, ...})
	github.com/docker/compose/v2/cmd/compose/compose.go:336 +0x448
github.com/docker/compose/v2/cmd/compose.runBuild({0x10497ec00, 0x14000469630}, {0x1049a7300, 0x14000429400}, {0x1049aca28, 0x14000412940}, {0x14000807e00, 0x0, 0x0, 0x0, ...}, ...)
	github.com/docker/compose/v2/cmd/compose/build.go:139 +0xa4
github.com/docker/compose/v2/cmd/compose.buildCommand.func2({0x10497ec00, 0x14000469630}, 0x1400001e308, {0x105f5ad60, 0x0, 0x0})
	github.com/docker/compose/v2/cmd/compose/build.go:109 +0x164
github.com/docker/compose/v2/cmd/compose.buildCommand.AdaptCmd.func4(0x1400001e308, {0x105f5ad60, 0x0, 0x0})
	github.com/docker/compose/v2/cmd/compose/compose.go:122 +0x10c
github.com/docker/cli/cli-plugins/plugin.RunPlugin.func1.1.2(0x1400001e308, {0x105f5ad60, 0x0, 0x0})
	github.com/docker/[email protected]+incompatible/cli-plugins/plugin/plugin.go:65 +0x68
github.com/docker/compose/v2/cmd/cmdtrace.Setup.wrapRunE.func2(0x1400001e308?, {0x105f5ad60?, 0x0?, 0x0?})
	github.com/docker/compose/v2/cmd/cmdtrace/cmd_span.go:85 +0x58
github.com/spf13/cobra.(*Command).execute(0x1400001e308, {0x14000481550, 0x0, 0x0})
	github.com/spf13/[email protected]/command.go:1015 +0x82c
github.com/spf13/cobra.(*Command).ExecuteC(0x1400002cf08)
	github.com/spf13/[email protected]/command.go:1148 +0x350
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:1071
github.com/docker/cli/cli-plugins/plugin.RunPlugin(0x14000429400, 0x14000212f08, {{0x103e3e929, 0x5}, {0x103e4890c, 0xb}, {0x1041ff880, 0x11}, {0x0, 0x0}, ...})
	github.com/docker/[email protected]+incompatible/cli-plugins/plugin/plugin.go:80 +0x138
github.com/docker/cli/cli-plugins/plugin.Run(0x1049472d8, {{0x103e3e929, 0x5}, {0x103e4890c, 0xb}, {0x1041ff880, 0x11}, {0x0, 0x0}, {0x0, ...}})
	github.com/docker/[email protected]+incompatible/cli-plugins/plugin/plugin.go:95 +0x124
main.pluginMain()
	github.com/docker/compose/v2/cmd/main.go:38 +0x98
main.main()
	github.com/docker/compose/v2/cmd/main.go:98 +0x1a4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions