mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Add directory contents instead of while directory for docker build
This commit is contained in:
		
							parent
							
								
									fe0c0c208c
								
							
						
					
					
						commit
						2897cb0476
					
				
					 2 changed files with 24 additions and 7 deletions
				
			
		
							
								
								
									
										21
									
								
								buildfile.go
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								buildfile.go
									
										
									
									
									
								
							| 
						 | 
					@ -213,9 +213,28 @@ func (b *buildFile) CmdAdd(args string) error {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := utils.CopyDirectory(path.Join(b.context, orig), path.Join(container.rwPath(), dest)); err != nil {
 | 
						origPath := path.Join(b.context, orig)
 | 
				
			||||||
 | 
						destPath := path.Join(container.rwPath(), dest)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fi, err := os.Stat(origPath)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if fi.IsDir() {
 | 
				
			||||||
 | 
							files, err := ioutil.ReadDir(path.Join(b.context, orig))
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							for _, fi := range files {
 | 
				
			||||||
 | 
								if err := utils.CopyDirectory(path.Join(origPath, fi.Name()), path.Join(destPath, fi.Name())); err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							if err := utils.CopyDirectory(origPath, destPath); err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return b.commit(cid)
 | 
						return b.commit(cid)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,7 +69,7 @@ type progressReader struct {
 | 
				
			||||||
	readProgress int           // How much has been read so far (bytes)
 | 
						readProgress int           // How much has been read so far (bytes)
 | 
				
			||||||
	lastUpdate   int           // How many bytes read at least update
 | 
						lastUpdate   int           // How many bytes read at least update
 | 
				
			||||||
	template     string        // Template to print. Default "%v/%v (%v)"
 | 
						template     string        // Template to print. Default "%v/%v (%v)"
 | 
				
			||||||
	json bool
 | 
						json         bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (r *progressReader) Read(p []byte) (n int, err error) {
 | 
					func (r *progressReader) Read(p []byte) (n int, err error) {
 | 
				
			||||||
| 
						 | 
					@ -102,7 +102,7 @@ func (r *progressReader) Close() error {
 | 
				
			||||||
	return io.ReadCloser(r.reader).Close()
 | 
						return io.ReadCloser(r.reader).Close()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
func ProgressReader(r io.ReadCloser, size int, output io.Writer, template string, json bool) *progressReader {
 | 
					func ProgressReader(r io.ReadCloser, size int, output io.Writer, template string, json bool) *progressReader {
 | 
				
			||||||
      	if template == "" {
 | 
						if template == "" {
 | 
				
			||||||
		template = "%v/%v (%v)\r"
 | 
							template = "%v/%v (%v)\r"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return &progressReader{r, NewWriteFlusher(output), size, 0, 0, template, json}
 | 
						return &progressReader{r, NewWriteFlusher(output), size, 0, 0, template, json}
 | 
				
			||||||
| 
						 | 
					@ -533,8 +533,8 @@ func GetKernelVersion() (*KernelVersionInfo, error) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func CopyDirectory(source, dest string) error {
 | 
					func CopyDirectory(source, dest string) error {
 | 
				
			||||||
	if _, err := exec.Command("cp", "-ra", source, dest).Output(); err != nil {
 | 
						if output, err := exec.Command("cp", "-ra", source, dest).CombinedOutput(); err != nil {
 | 
				
			||||||
		return err
 | 
							return fmt.Errorf("Error copy: %s (%s)", err, output)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -577,5 +577,3 @@ func FormatProgress(str string, json bool) string {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return "Downloading " + str + "\r"
 | 
						return "Downloading " + str + "\r"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue