mirror of https://github.com/docker/compose.git
Fix stop on file chane for sync-restart action
Signed-off-by: Joana Hrotko <joana.hrotko@docker.com>
This commit is contained in:
parent
b1850ea4d4
commit
ea4ccf639d
|
@ -257,6 +257,11 @@ func (s *composeService) watchContainers(ctx context.Context, //nolint:gocyclo
|
||||||
service := container.Labels[api.ServiceLabel]
|
service := container.Labels[api.ServiceLabel]
|
||||||
switch event.Status {
|
switch event.Status {
|
||||||
case "stop":
|
case "stop":
|
||||||
|
if inspected.State.Running {
|
||||||
|
// on sync+restart action the container stops -> dies -> start -> restart
|
||||||
|
// we do not want to stop the current container, we want to restart it
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if _, ok := watched[container.ID]; ok {
|
if _, ok := watched[container.ID]; ok {
|
||||||
eType := api.ContainerEventStopped
|
eType := api.ContainerEventStopped
|
||||||
if utils.Contains(replaced, container.ID) {
|
if utils.Contains(replaced, container.ID) {
|
||||||
|
@ -279,6 +284,11 @@ func (s *composeService) watchContainers(ctx context.Context, //nolint:gocyclo
|
||||||
watched[container.ID] = restarted + 1
|
watched[container.ID] = restarted + 1
|
||||||
// Container terminated.
|
// Container terminated.
|
||||||
willRestart := inspected.State.Restarting
|
willRestart := inspected.State.Restarting
|
||||||
|
if inspected.State.Running {
|
||||||
|
// on sync+restart action inspected.State.Restarting is false,
|
||||||
|
// however the container is already running before it restarts
|
||||||
|
willRestart = true
|
||||||
|
}
|
||||||
|
|
||||||
eType := api.ContainerEventExit
|
eType := api.ContainerEventExit
|
||||||
if utils.Contains(replaced, container.ID) {
|
if utils.Contains(replaced, container.ID) {
|
||||||
|
|
|
@ -34,7 +34,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWatch(t *testing.T) {
|
func TestWatch(t *testing.T) {
|
||||||
t.Skip("Skipping watch tests until we can figure out why they are flaky/failing")
|
|
||||||
|
|
||||||
services := []string{"alpine", "busybox", "debian"}
|
services := []string{"alpine", "busybox", "debian"}
|
||||||
for _, svcName := range services {
|
for _, svcName := range services {
|
||||||
|
|
Loading…
Reference in New Issue