1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package glue
- import (
- "encoding/json"
- "os"
- "path"
- "github.com/docker/engine-api/types/container"
- "github.com/opencontainers/specs/specs-go"
- )
- type DockerPluginState struct {
- ContainerID string
- State specs.State
- Spec specs.Spec
- HostConfig container.HostConfig
- Config container.Config
- }
- func ReadState() (*DockerPluginState, error) {
- pluginState := DockerPluginState{}
- config := struct {
- ID string
- Config container.Config
- }{}
- if err := json.NewDecoder(os.Stdin).Decode(&pluginState.State); err != nil {
- return nil, err
- }
- if err := readJSONFile(os.Getenv("DOCKER_HOST_CONFIG"), &pluginState.HostConfig); err != nil {
- return nil, err
- }
- if err := readJSONFile(os.Getenv("DOCKER_CONFIG"), &config); err != nil {
- return nil, err
- }
- pluginState.Config = config.Config
- pluginState.ContainerID = config.ID
- return &pluginState, readJSONFile(path.Join(pluginState.State.BundlePath, "config.json"), &pluginState.Spec)
- }
|