mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	Merge pull request #863 from zachary-povey/support_host_network_in_compose
Add NetworkMode to bake target
This commit is contained in:
		
							
								
								
									
										21
									
								
								bake/bake.go
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								bake/bake.go
									
									
									
									
									
								
							@@ -435,6 +435,7 @@ type Target struct {
 | 
			
		||||
	Outputs          []string          `json:"output,omitempty" hcl:"output,optional"`
 | 
			
		||||
	Pull             *bool             `json:"pull,omitempty" hcl:"pull,optional"`
 | 
			
		||||
	NoCache          *bool             `json:"no-cache,omitempty" hcl:"no-cache,optional"`
 | 
			
		||||
	NetworkMode      *string
 | 
			
		||||
 | 
			
		||||
	// IMPORTANT: if you add more fields here, do not forget to update newOverrides and README.
 | 
			
		||||
}
 | 
			
		||||
@@ -501,6 +502,9 @@ func (t *Target) Merge(t2 *Target) {
 | 
			
		||||
	if t2.NoCache != nil {
 | 
			
		||||
		t.NoCache = t2.NoCache
 | 
			
		||||
	}
 | 
			
		||||
	if t2.NetworkMode != nil {
 | 
			
		||||
		t.NetworkMode = t2.NetworkMode
 | 
			
		||||
	}
 | 
			
		||||
	t.Inherits = append(t.Inherits, t2.Inherits...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -641,6 +645,10 @@ func toBuildOpt(t *Target, inp *Input) (*build.Options, error) {
 | 
			
		||||
	if t.Pull != nil {
 | 
			
		||||
		pull = *t.Pull
 | 
			
		||||
	}
 | 
			
		||||
	networkMode := ""
 | 
			
		||||
	if t.NetworkMode != nil {
 | 
			
		||||
		networkMode = *t.NetworkMode
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bi := build.Inputs{
 | 
			
		||||
		ContextPath:    contextPath,
 | 
			
		||||
@@ -657,12 +665,13 @@ func toBuildOpt(t *Target, inp *Input) (*build.Options, error) {
 | 
			
		||||
	t.Context = &bi.ContextPath
 | 
			
		||||
 | 
			
		||||
	bo := &build.Options{
 | 
			
		||||
		Inputs:    bi,
 | 
			
		||||
		Tags:      t.Tags,
 | 
			
		||||
		BuildArgs: t.Args,
 | 
			
		||||
		Labels:    t.Labels,
 | 
			
		||||
		NoCache:   noCache,
 | 
			
		||||
		Pull:      pull,
 | 
			
		||||
		Inputs:      bi,
 | 
			
		||||
		Tags:        t.Tags,
 | 
			
		||||
		BuildArgs:   t.Args,
 | 
			
		||||
		Labels:      t.Labels,
 | 
			
		||||
		NoCache:     noCache,
 | 
			
		||||
		Pull:        pull,
 | 
			
		||||
		NetworkMode: networkMode,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	platforms, err := platformutil.Parse(t.Platforms)
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,8 @@ func ParseCompose(dt []byte) (*Config, error) {
 | 
			
		||||
					val, ok := cfg.Environment[val]
 | 
			
		||||
					return val, ok
 | 
			
		||||
				})),
 | 
			
		||||
				CacheFrom: s.Build.CacheFrom,
 | 
			
		||||
				CacheFrom:   s.Build.CacheFrom,
 | 
			
		||||
				NetworkMode: &s.Build.Network,
 | 
			
		||||
			}
 | 
			
		||||
			if err = t.composeExtTarget(s.Build.Extensions); err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,8 @@ services:
 | 
			
		||||
    build:
 | 
			
		||||
      context: ./dir
 | 
			
		||||
      dockerfile: Dockerfile-alternate
 | 
			
		||||
      network:
 | 
			
		||||
        none
 | 
			
		||||
      args:
 | 
			
		||||
        buildno: 123
 | 
			
		||||
`)
 | 
			
		||||
@@ -43,6 +45,7 @@ services:
 | 
			
		||||
	require.Equal(t, "Dockerfile-alternate", *c.Targets[1].Dockerfile)
 | 
			
		||||
	require.Equal(t, 1, len(c.Targets[1].Args))
 | 
			
		||||
	require.Equal(t, "123", c.Targets[1].Args["buildno"])
 | 
			
		||||
	require.Equal(t, "none", *c.Targets[1].NetworkMode)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestNoBuildOutOfTreeService(t *testing.T) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user