mirror of
https://github.com/docker/docs.git
synced 2026-03-30 07:48:52 +07:00
Image: unmount device before removing it on failures
If we don't do this the remove will fail due to EBUSY
This commit is contained in:
committed by
Tianon Gravi
parent
2c71710b74
commit
ecdbdfdaea
3
image.go
3
image.go
@@ -414,6 +414,7 @@ func (image *Image) ensureImageDevice(devices DeviceSet) error {
|
||||
|
||||
err = ioutil.WriteFile(path.Join(mountDir, ".docker-id"), []byte(image.ID), 0600)
|
||||
if err != nil {
|
||||
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||
_ = devices.RemoveDevice(image.ID)
|
||||
return err
|
||||
}
|
||||
@@ -432,11 +433,13 @@ func (image *Image) ensureImageDevice(devices DeviceSet) error {
|
||||
// part of the container changes
|
||||
dockerinitLayer, err := image.getDockerInitLayer()
|
||||
if err != nil {
|
||||
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||
_ = devices.RemoveDevice(image.ID)
|
||||
return err
|
||||
}
|
||||
err = image.applyLayer(dockerinitLayer, mountDir)
|
||||
if err != nil {
|
||||
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||
_ = devices.RemoveDevice(image.ID)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user