mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-20 10:27:46 +08:00
bake: support compose additional contexts
compose-go v1.13.0 supports the new additional_contexts to allow passing additional build context during build, so we should map this to bake's contexts property. Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
parent
5d06406f26
commit
e228c398f4
@ -75,6 +75,14 @@ func ParseCompose(cfgs []compose.ConfigFile, envs map[string]string) (*Config, e
|
|||||||
dockerfileInlineP = &dockerfileInline
|
dockerfileInlineP = &dockerfileInline
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var additionalContexts map[string]string
|
||||||
|
if s.Build.AdditionalContexts != nil {
|
||||||
|
additionalContexts = map[string]string{}
|
||||||
|
for k, v := range s.Build.AdditionalContexts {
|
||||||
|
additionalContexts[k] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var secrets []string
|
var secrets []string
|
||||||
for _, bs := range s.Build.Secrets {
|
for _, bs := range s.Build.Secrets {
|
||||||
secret, err := composeToBuildkitSecret(bs, cfg.Secrets[bs.Source])
|
secret, err := composeToBuildkitSecret(bs, cfg.Secrets[bs.Source])
|
||||||
@ -95,6 +103,7 @@ func ParseCompose(cfgs []compose.ConfigFile, envs map[string]string) (*Config, e
|
|||||||
t := &Target{
|
t := &Target{
|
||||||
Name: targetName,
|
Name: targetName,
|
||||||
Context: contextPathP,
|
Context: contextPathP,
|
||||||
|
Contexts: additionalContexts,
|
||||||
Dockerfile: dockerfilePathP,
|
Dockerfile: dockerfilePathP,
|
||||||
DockerfileInline: dockerfileInlineP,
|
DockerfileInline: dockerfileInlineP,
|
||||||
Tags: s.Build.Tags,
|
Tags: s.Build.Tags,
|
||||||
|
@ -21,6 +21,8 @@ services:
|
|||||||
webapp:
|
webapp:
|
||||||
build:
|
build:
|
||||||
context: ./dir
|
context: ./dir
|
||||||
|
additional_contexts:
|
||||||
|
foo: /bar
|
||||||
dockerfile: Dockerfile-alternate
|
dockerfile: Dockerfile-alternate
|
||||||
network:
|
network:
|
||||||
none
|
none
|
||||||
@ -63,6 +65,7 @@ secrets:
|
|||||||
|
|
||||||
require.Equal(t, "webapp", c.Targets[1].Name)
|
require.Equal(t, "webapp", c.Targets[1].Name)
|
||||||
require.Equal(t, "./dir", *c.Targets[1].Context)
|
require.Equal(t, "./dir", *c.Targets[1].Context)
|
||||||
|
require.Equal(t, map[string]string{"foo": "/bar"}, c.Targets[1].Contexts)
|
||||||
require.Equal(t, "Dockerfile-alternate", *c.Targets[1].Dockerfile)
|
require.Equal(t, "Dockerfile-alternate", *c.Targets[1].Dockerfile)
|
||||||
require.Equal(t, 1, len(c.Targets[1].Args))
|
require.Equal(t, 1, len(c.Targets[1].Args))
|
||||||
require.Equal(t, ptrstr("123"), c.Targets[1].Args["buildno"])
|
require.Equal(t, ptrstr("123"), c.Targets[1].Args["buildno"])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user