diff --git a/internal/machine/docker/server.go b/internal/machine/docker/server.go index f991fe1b..4d154ead 100644 --- a/internal/machine/docker/server.go +++ b/internal/machine/docker/server.go @@ -546,10 +546,10 @@ func (s *Server) CreateServiceContainer( Memory: spec.Container.Resources.Memory, MemoryReservation: spec.Container.Resources.MemoryReservation, }, - // Always restart service containers if they exit or a machine restarts. + // Restart service containers if they exit or a machine restarts unless they are explicitly stopped. // For one-off containers and batch jobs we plan to use a different service type/mode. RestartPolicy: container.RestartPolicy{ - Name: container.RestartPolicyAlways, + Name: container.RestartPolicyUnlessStopped, }, } diff --git a/test/e2e/assert.go b/test/e2e/assert.go index f086a6ae..f6569c8c 100644 --- a/test/e2e/assert.go +++ b/test/e2e/assert.go @@ -100,7 +100,7 @@ func assertContainerMatchesSpec(t *testing.T, ctr api.ServiceContainer, spec api assert.Equal(t, portBindings, ctr.HostConfig.PortBindings) assert.Equal(t, container.RestartPolicy{ - Name: container.RestartPolicyAlways, + Name: container.RestartPolicyUnlessStopped, MaximumRetryCount: 0, }, ctr.HostConfig.RestartPolicy) diff --git a/test/e2e/service_test.go b/test/e2e/service_test.go index 9f8137ee..08f055a7 100644 --- a/test/e2e/service_test.go +++ b/test/e2e/service_test.go @@ -279,35 +279,11 @@ func TestDeployment(t *testing.T) { svc, err := cli.InspectService(ctx, client.CaddyServiceName) require.NoError(t, err) - assert.Equal(t, client.CaddyServiceName, svc.Name) - assert.Equal(t, api.ServiceModeGlobal, svc.Mode) assert.Len(t, svc.Containers, 3) + assertServiceMatchesSpec(t, svc, deployment.Spec) ctr := svc.Containers[0].Container assert.Regexp(t, `^caddy:2\.\d+\.\d+$`, ctr.Config.Image) - - ports, err := ctr.ServicePorts() - require.NoError(t, err) - expectedPorts := []api.PortSpec{ - { - PublishedPort: 80, - ContainerPort: 80, - Protocol: api.ProtocolTCP, - Mode: api.PortModeHost, - }, - { - PublishedPort: 443, - ContainerPort: 443, - Protocol: api.ProtocolTCP, - Mode: api.PortModeHost, - }, - } - assert.Equal(t, expectedPorts, ports) - - assert.Equal(t, container.RestartPolicy{ - Name: container.RestartPolicyAlways, - MaximumRetryCount: 0, - }, ctr.HostConfig.RestartPolicy) }) t.Run("caddy with machine placement", func(t *testing.T) {