mirror of
https://github.com/containers/podman.git
synced 2025-09-14 03:21:12 +08:00

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>
39 lines
948 B
Go
39 lines
948 B
Go
package docker
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
// TopResult represents the list of processes running in a container, as
|
|
// returned by /containers/<id>/top.
|
|
//
|
|
// See https://goo.gl/FLwpPl for more details.
|
|
type TopResult struct {
|
|
Titles []string
|
|
Processes [][]string
|
|
}
|
|
|
|
// TopContainer returns processes running inside a container
|
|
//
|
|
// See https://goo.gl/FLwpPl for more details.
|
|
func (c *Client) TopContainer(id string, psArgs string) (TopResult, error) {
|
|
var args string
|
|
var result TopResult
|
|
if psArgs != "" {
|
|
args = fmt.Sprintf("?ps_args=%s", psArgs)
|
|
}
|
|
path := fmt.Sprintf("/containers/%s/top%s", id, args)
|
|
resp, err := c.do(http.MethodGet, path, doOptions{})
|
|
if err != nil {
|
|
if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
|
|
return result, &NoSuchContainer{ID: id}
|
|
}
|
|
return result, err
|
|
}
|
|
defer resp.Body.Close()
|
|
err = json.NewDecoder(resp.Body).Decode(&result)
|
|
return result, err
|
|
}
|