mirror of
				https://github.com/containers/podman.git
				synced 2025-11-01 02:42:11 +08:00 
			
		
		
		
	 65a618886e
			
		
	
	65a618886e
	
	
	
		
			
			Add a new "image" mount type to `--mount`. The source of the mount is the name or ID of an image. The destination is the path inside the container. Image mounts further support an optional `rw,readwrite` parameter which if set to "true" will yield the mount writable inside the container. Note that no changes are propagated to the image mount on the host (which in any case is read only). Mounts are overlay mounts. To support read-only overlay mounts, vendor a non-release version of Buildah. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package docker
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"fmt"
 | |
| 	"io"
 | |
| 	"net/http"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // UploadToContainerOptions is the set of options that can be used when
 | |
| // uploading an archive into a container.
 | |
| //
 | |
| // See https://goo.gl/g25o7u for more details.
 | |
| type UploadToContainerOptions struct {
 | |
| 	InputStream          io.Reader `json:"-" qs:"-"`
 | |
| 	Path                 string    `qs:"path"`
 | |
| 	NoOverwriteDirNonDir bool      `qs:"noOverwriteDirNonDir"`
 | |
| 	Context              context.Context
 | |
| }
 | |
| 
 | |
| // UploadToContainer uploads a tar archive to be extracted to a path in the
 | |
| // filesystem of the container.
 | |
| //
 | |
| // See https://goo.gl/g25o7u for more details.
 | |
| func (c *Client) UploadToContainer(id string, opts UploadToContainerOptions) error {
 | |
| 	url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts)
 | |
| 
 | |
| 	return c.stream(http.MethodPut, url, streamOptions{
 | |
| 		in:      opts.InputStream,
 | |
| 		context: opts.Context,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // DownloadFromContainerOptions is the set of options that can be used when
 | |
| // downloading resources from a container.
 | |
| //
 | |
| // See https://goo.gl/W49jxK for more details.
 | |
| type DownloadFromContainerOptions struct {
 | |
| 	OutputStream      io.Writer     `json:"-" qs:"-"`
 | |
| 	Path              string        `qs:"path"`
 | |
| 	InactivityTimeout time.Duration `qs:"-"`
 | |
| 	Context           context.Context
 | |
| }
 | |
| 
 | |
| // DownloadFromContainer downloads a tar archive of files or folders in a container.
 | |
| //
 | |
| // See https://goo.gl/W49jxK for more details.
 | |
| func (c *Client) DownloadFromContainer(id string, opts DownloadFromContainerOptions) error {
 | |
| 	url := fmt.Sprintf("/containers/%s/archive?", id) + queryString(opts)
 | |
| 
 | |
| 	return c.stream(http.MethodGet, url, streamOptions{
 | |
| 		setRawTerminal:    true,
 | |
| 		stdout:            opts.OutputStream,
 | |
| 		inactivityTimeout: opts.InactivityTimeout,
 | |
| 		context:           opts.Context,
 | |
| 	})
 | |
| }
 |