diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 17d14f1f..17824ac6 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -250,33 +250,33 @@ }, { "ImportPath": "github.com/docker/libcompose/cli/logger", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcompose/docker", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcompose/logger", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcompose/lookup", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcompose/project", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcompose/utils", - "Comment": "v0.0.2-ros", - "Rev": "48a1ac9a0aceeea67279b689e446a8dfcdc7033f" + "Comment": "v0.0.2-ros-1-g6815465", + "Rev": "68154659ac7ebd81f0e61b14750393f2fbc0eca4" }, { "ImportPath": "github.com/docker/libcontainer/netlink", diff --git a/Godeps/_workspace/src/github.com/docker/libcompose/docker/service.go b/Godeps/_workspace/src/github.com/docker/libcompose/docker/service.go index d6cdf8ba..1d60ead8 100644 --- a/Godeps/_workspace/src/github.com/docker/libcompose/docker/service.go +++ b/Godeps/_workspace/src/github.com/docker/libcompose/docker/service.go @@ -59,15 +59,26 @@ func (s *Service) collectContainers() ([]*Container, error) { for _, container := range containers { name := container.Labels[NAME.Str()] c := NewContainer(client, name, s) - if outOfSync, err := c.OutOfSync(imageName); err != nil { - return nil, err - } else if outOfSync && s.context.Rebuild && s.Config().Labels.MapParts()[REBUILD.Str()] != "false" { - logrus.Infof("Rebuilding %s", name) - if _, err := c.Rebuild(imageName); err != nil { + if s.context.Rebuild { + outOfSync, err := c.OutOfSync(imageName) + if err != nil { return nil, err } - } else if outOfSync { - logrus.Warnf("%s needs rebuilding", name) + origRebuildLabel := container.Labels[REBUILD.Str()] + newRebuildLabel := s.Config().Labels.MapParts()[REBUILD.Str()] + rebuildLabelChanged := newRebuildLabel != origRebuildLabel + logrus.WithFields(logrus.Fields{ + "origRebuildLabel": origRebuildLabel, + "newRebuildLabel": newRebuildLabel, + "rebuildLabelChanged": rebuildLabelChanged}).Debug("Rebuild values") + if origRebuildLabel == "always" || rebuildLabelChanged || origRebuildLabel != "false" && outOfSync { + logrus.Infof("Rebuilding %s", name) + if _, err := c.Rebuild(imageName); err != nil { + return nil, err + } + } else if outOfSync { + logrus.Warnf("%s needs rebuilding", name) + } } result = append(result, c)