diff --git a/pkg/compose/publish.go b/pkg/compose/publish.go index 42711266..71efbef3 100644 --- a/pkg/compose/publish.go +++ b/pkg/compose/publish.go @@ -102,20 +102,22 @@ func (s *composeService) publish(ctx context.Context, project *types.Project, re Digest: digest.FromBytes(emptyConfig), Size: int64(len(emptyConfig)), } - err = resolver.Push(ctx, named, configDescriptor, emptyConfig) - if err != nil { - return err - } - - imageManifest, err := json.Marshal(v1.Manifest{ - Versioned: specs.Versioned{SchemaVersion: 2}, - MediaType: v1.MediaTypeImageManifest, - ArtifactType: "application/vnd.docker.compose.project", - Config: configDescriptor, - Layers: layers, - }) - if err != nil { - return err + var imageManifest []byte + if !s.dryRun { + err = resolver.Push(ctx, named, configDescriptor, emptyConfig) + if err != nil { + return err + } + imageManifest, err = json.Marshal(v1.Manifest{ + Versioned: specs.Versioned{SchemaVersion: 2}, + MediaType: v1.MediaTypeImageManifest, + ArtifactType: "application/vnd.docker.compose.project", + Config: configDescriptor, + Layers: layers, + }) + if err != nil { + return err + } } w.Event(progress.Event{ @@ -123,23 +125,24 @@ func (s *composeService) publish(ctx context.Context, project *types.Project, re Text: "publishing", Status: progress.Working, }) - - err = resolver.Push(ctx, named, v1.Descriptor{ - MediaType: v1.MediaTypeImageManifest, - Digest: digest.FromString(string(imageManifest)), - Size: int64(len(imageManifest)), - Annotations: map[string]string{ - "com.docker.compose.version": api.ComposeVersion, - }, - ArtifactType: "application/vnd.docker.compose.project", - }, imageManifest) - if err != nil { - w.Event(progress.Event{ - ID: repository, - Text: "publishing", - Status: progress.Error, - }) - return err + if !s.dryRun { + err = resolver.Push(ctx, named, v1.Descriptor{ + MediaType: v1.MediaTypeImageManifest, + Digest: digest.FromString(string(imageManifest)), + Size: int64(len(imageManifest)), + Annotations: map[string]string{ + "com.docker.compose.version": api.ComposeVersion, + }, + ArtifactType: "application/vnd.docker.compose.project", + }, imageManifest) + if err != nil { + w.Event(progress.Event{ + ID: repository, + Text: "publishing", + Status: progress.Error, + }) + return err + } } w.Event(progress.Event{ ID: repository,