diff --git a/cmd/compose/compose.go b/cmd/compose/compose.go index 7796a1a6c2..e215aa394b 100644 --- a/cmd/compose/compose.go +++ b/cmd/compose/compose.go @@ -307,7 +307,13 @@ func (o *ProjectOptions) ToModel(ctx context.Context, dockerCli command.Cli, ser // ToProject loads a Compose project using the LoadProject API. // Accepts optional cli.ProjectOptionsFn to control loader behavior. -func (o *ProjectOptions) ToProject(ctx context.Context, dockerCli command.Cli, backend api.Compose, services []string, po ...cli.ProjectOptionsFn) (*types.Project, tracing.Metrics, error) { +func (o *ProjectOptions) ToProject( + ctx context.Context, + dockerCli command.Cli, + backend api.Compose, + services []string, + po ...cli.ProjectOptionsFn, +) (*types.Project, tracing.Metrics, error) { var metrics tracing.Metrics remotes := o.remoteLoaders(dockerCli) @@ -357,6 +363,9 @@ func (o *ProjectOptions) ToProject(ctx context.Context, dockerCli command.Cli, b return nil, metrics, err } + // Warn about unsupported attributes (e.g. deploy) + warnUnsupportedAttributes(project) + return project, metrics, nil } diff --git a/cmd/compose/warnings.go b/cmd/compose/warnings.go new file mode 100644 index 0000000000..c91cbaa6df --- /dev/null +++ b/cmd/compose/warnings.go @@ -0,0 +1,17 @@ +package compose + +import ( + "github.com/compose-spec/compose-go/v2/types" + "github.com/sirupsen/logrus" +) + +func warnUnsupportedAttributes(project *types.Project) { + for _, service := range project.Services { + if service.Deploy != nil { + logrus.Warnf( + "Service %q uses 'deploy' which is not supported by docker compose and will be ignored", + service.Name, + ) + } + } +}