Skip to content

Commit 374ff64

Browse files
committed
fix(systemd units): Fix docker containers being orphaned
Docker seems to orphan our containers after the fix in 6b452e, this reverts part of it and properly signals the docker containers to stop. Given that we run them with `--rm`, this also makes the ephemeral containers destroy their data off of the drives. The data containers are not affected by this and they persist.
1 parent ce05b21 commit 374ff64

7 files changed

Lines changed: 7 additions & 0 deletions

File tree

builder/systemd/deis-builder.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/builder`; docker h
1010
ExecStartPre=/bin/sh -c "docker inspect deis-builder >/dev/null && docker rm -f deis-builder || true"
1111
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/builder` && docker run --name deis-builder --rm -p 2223:22 -e PUBLISH=22 -e HOST=$COREOS_PRIVATE_IPV4 -e PORT=2223 --volumes-from deis-builder-data --privileged $IMAGE"
1212
ExecStartPost=/bin/sh -c "echo 'Waiting for builder on 2223/tcp...' && until cat </dev/null>/dev/tcp/$COREOS_PRIVATE_IPV4/2223; do sleep 1; done"
13+
ExecStopPost=/usr/bin/docker stop deis-builder
1314

1415
[Install]
1516
WantedBy=multi-user.target

cache/systemd/deis-cache.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ TimeoutStartSec=20m
77
ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/cache`; docker history $IMAGE >/dev/null || docker pull $IMAGE"
88
ExecStartPre=/bin/sh -c "docker inspect deis-cache >/dev/null && docker rm -f deis-cache || true"
99
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/cache` && docker run --name deis-cache --rm -p 6379:6379 -e PUBLISH=6379 -e HOST=$COREOS_PRIVATE_IPV4 $IMAGE"
10+
ExecStopPost=/usr/bin/docker stop deis-cache
1011

1112
[Install]
1213
WantedBy=multi-user.target

controller/systemd/deis-controller.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ TimeoutStartSec=20m
99
ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/controller`; docker history $IMAGE >/dev/null || docker pull $IMAGE"
1010
ExecStartPre=/bin/sh -c "docker inspect deis-controller >/dev/null && docker rm -f deis-controller || true"
1111
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/controller` && docker run --name deis-controller --rm -p 8000:8000 -e PUBLISH=8000 -e HOST=$COREOS_PRIVATE_IPV4 --volumes-from=deis-logger $IMAGE"
12+
ExecStopPost=/usr/bin/docker stop deis-controller
1213

1314
[Install]
1415
WantedBy=multi-user.target

database/systemd/deis-database.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/database`; docker
1010
ExecStartPre=/bin/sh -c "docker inspect deis-database >/dev/null && docker rm -f deis-database || true"
1111
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/database` && docker run --name deis-database --rm -p 5432:5432 -e PUBLISH=5432 -e HOST=$COREOS_PRIVATE_IPV4 --volumes-from deis-database-data $IMAGE"
1212
ExecStop=/bin/bash -c "nsenter --pid --uts --mount --ipc --net --target $(docker inspect --format='{{ .State.Pid }}' deis-database) sudo service postgresql stop"
13+
ExecStopPost=/usr/bin/docker stop deis-database
1314

1415
[Install]
1516
WantedBy=multi-user.target

logger/systemd/deis-logger.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ TimeoutStartSec=20m
99
ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/logger`; docker history $IMAGE >/dev/null || docker pull $IMAGE"
1010
ExecStartPre=/bin/sh -c "docker inspect deis-logger >/dev/null && docker rm -f deis-logger || true"
1111
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/logger` && docker run --name deis-logger --rm -p 514:514/udp -e PUBLISH=514 -e HOST=$COREOS_PRIVATE_IPV4 --volumes-from deis-logger-data $IMAGE"
12+
ExecStopPost=/usr/bin/docker stop deis-logger
1213

1314
[Install]
1415
WantedBy=multi-user.target

registry/systemd/deis-registry.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/registry`; docker
1010
ExecStartPre=/bin/sh -c "docker inspect deis-registry >/dev/null && docker rm -f deis-registry || true"
1111
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/registry` && docker run --name deis-registry --rm -p 5000:5000 -e PUBLISH=5000 -e HOST=$COREOS_PRIVATE_IPV4 --volumes-from deis-registry-data $IMAGE"
1212
ExecStartPost=/bin/sh -c "echo 'Waiting for listener on 5000/tcp...' && until cat </dev/null>/dev/tcp/$COREOS_PRIVATE_IPV4/5000; do sleep 1; done && docker pull deis/slugrunner:latest && docker tag deis/slugrunner $COREOS_PRIVATE_IPV4:5000/deis/slugrunner && docker push $COREOS_PRIVATE_IPV4:5000/deis/slugrunner"
13+
ExecStopPost=/usr/bin/docker stop deis-registry
1314

1415
[Install]
1516
WantedBy=multi-user.target

router/systemd/deis-router.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ TimeoutStartSec=20m
77
ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/router`; docker history $IMAGE >/dev/null || docker pull $IMAGE"
88
ExecStartPre=/bin/sh -c "docker inspect deis-router >/dev/null && docker rm -f deis-router || true"
99
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/router` && docker run --name deis-router --rm -p 80:80 -p 2222:2222 -e PUBLISH=80 -e HOST=$COREOS_PRIVATE_IPV4 $IMAGE"
10+
ExecStopPost=/usr/bin/docker stop deis-router
1011

1112
[Install]
1213
WantedBy=multi-user.target

0 commit comments

Comments
 (0)