1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

never remove the file and try to load it in start

This commit is contained in:
Victor Vieux 2013-07-02 18:02:16 +00:00
parent 27a137ccab
commit 3042f11666
2 changed files with 5 additions and 10 deletions

View file

@ -265,7 +265,7 @@ func (container *Container) ToDisk() (err error) {
return ioutil.WriteFile(container.jsonPath(), data, 0666) return ioutil.WriteFile(container.jsonPath(), data, 0666)
} }
func (container *Container) ReadTempHostConfig() (*HostConfig, error) { func (container *Container) ReadHostConfig() (*HostConfig, error) {
data, err := ioutil.ReadFile(container.hostConfigPath()) data, err := ioutil.ReadFile(container.hostConfigPath())
if err != nil { if err != nil {
return &HostConfig{}, err return &HostConfig{}, err
@ -278,9 +278,6 @@ func (container *Container) ReadTempHostConfig() (*HostConfig, error) {
} }
func (container *Container) SaveHostConfig(hostConfig *HostConfig) (err error) { func (container *Container) SaveHostConfig(hostConfig *HostConfig) (err error) {
if hostConfig == nil {
return os.Remove(container.hostConfigPath())
}
data, err := json.Marshal(hostConfig) data, err := json.Marshal(hostConfig)
if err != nil { if err != nil {
return return
@ -491,6 +488,9 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s
func (container *Container) Start(hostConfig *HostConfig) error { func (container *Container) Start(hostConfig *HostConfig) error {
container.State.lock() container.State.lock()
defer container.State.unlock() defer container.State.unlock()
if len(hostConfig.Binds) == 0 {
hostConfig, _ = container.ReadHostConfig()
}
if container.State.Running { if container.State.Running {
return fmt.Errorf("The container %s is already running.", container.ID) return fmt.Errorf("The container %s is already running.", container.ID)
@ -815,8 +815,6 @@ func (container *Container) monitor() {
// FIXME: why are we serializing running state to disk in the first place? // FIXME: why are we serializing running state to disk in the first place?
//log.Printf("%s: Failed to dump configuration to the disk: %s", container.ID, err) //log.Printf("%s: Failed to dump configuration to the disk: %s", container.ID, err)
} }
// Remove temp host config
container.SaveHostConfig(nil)
} }
func (container *Container) kill() error { func (container *Container) kill() error {

View file

@ -144,8 +144,7 @@ func (runtime *Runtime) Register(container *Container) error {
utils.Debugf("Restarting") utils.Debugf("Restarting")
container.State.Ghost = false container.State.Ghost = false
container.State.setStopped(0) container.State.setStopped(0)
// assume empty host config hostConfig := &HostConfig{}
hostConfig, _ := container.ReadTempHostConfig()
if err := container.Start(hostConfig); err != nil { if err := container.Start(hostConfig); err != nil {
return err return err
} }
@ -156,8 +155,6 @@ func (runtime *Runtime) Register(container *Container) error {
if err := container.ToDisk(); err != nil { if err := container.ToDisk(); err != nil {
return err return err
} }
// remove temp host config
container.SaveHostConfig(nil)
} }
} }
} }