mirror of
https://github.com/docker/compose.git
synced 2025-07-08 22:34:26 +02:00
refuse to publish compose file with local include
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
8092ce9414
commit
bcd000ab40
@ -18,6 +18,7 @@ package compose
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
"github.com/docker/cli/cli/command"
|
"github.com/docker/cli/cli/command"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@ -55,11 +56,15 @@ func publishCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Servic
|
|||||||
}
|
}
|
||||||
|
|
||||||
func runPublish(ctx context.Context, dockerCli command.Cli, backend api.Service, opts publishOptions, repository string) error {
|
func runPublish(ctx context.Context, dockerCli command.Cli, backend api.Service, opts publishOptions, repository string) error {
|
||||||
project, _, err := opts.ToProject(ctx, dockerCli, nil)
|
project, metrics, err := opts.ToProject(ctx, dockerCli, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if metrics.CountIncludesLocal > 0 {
|
||||||
|
return errors.New("cannot publish compose file with local includes")
|
||||||
|
}
|
||||||
|
|
||||||
return backend.Publish(ctx, project, repository, api.PublishOptions{
|
return backend.Publish(ctx, project, repository, api.PublishOptions{
|
||||||
ResolveImageDigests: opts.resolveImageDigests,
|
ResolveImageDigests: opts.resolveImageDigests,
|
||||||
OCIVersion: api.OCIVersion(opts.ociVersion),
|
OCIVersion: api.OCIVersion(opts.ociVersion),
|
||||||
|
3
pkg/e2e/fixtures/publish/another/compose.yml
Normal file
3
pkg/e2e/fixtures/publish/another/compose.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
services:
|
||||||
|
foo:
|
||||||
|
image: bar
|
6
pkg/e2e/fixtures/publish/compose-local-include.yml
Normal file
6
pkg/e2e/fixtures/publish/compose-local-include.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
include:
|
||||||
|
- ./another/compose.yml
|
||||||
|
|
||||||
|
services:
|
||||||
|
test:
|
||||||
|
image: test
|
@ -116,4 +116,10 @@ FOO=bar`), res.Combined())
|
|||||||
assert.Assert(t, strings.Contains(res.Combined(), "serviceA"), res.Combined())
|
assert.Assert(t, strings.Contains(res.Combined(), "serviceA"), res.Combined())
|
||||||
assert.Assert(t, strings.Contains(res.Combined(), "serviceB"), res.Combined())
|
assert.Assert(t, strings.Contains(res.Combined(), "serviceB"), res.Combined())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("refuse to publish with local include", func(t *testing.T) {
|
||||||
|
res := c.RunDockerComposeCmdNoCheck(t, "-f", "./fixtures/publish/compose-local-include.yml",
|
||||||
|
"-p", projectName, "alpha", "publish", "test/test", "--dry-run")
|
||||||
|
res.Assert(t, icmd.Expected{ExitCode: 1, Err: "cannot publish compose file with local includes"})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user