Commit graph

5 commits

Author SHA1 Message Date
Kamil Trzcinski
753f34c8fa Fix docker image 2015-07-14 19:46:55 +02:00
Kamil Trzcinski
954c1df256 Update Docker documentation to use single container 2015-07-06 16:42:52 +02:00
Sytse Sijbrandij
e8edd20bfd Made a single docker file. 2015-05-06 15:32:29 +02:00
Jozef Vaclavik
71e6871737 Separate Dockerfile for Data and Application 2015-03-20 20:03:14 +01:00
kfei
9338c63252 Gracefully shutdown services in Docker container
The problem is `docker stop` only sends SIGTERM to the PID 1 inside the
container, and the PID 1 (`/bin/sh -c ...`) does not take care of
signals. Hence the services (e.g., postgresql, redis, sidekiq, etc)
never have chances to graceful shutdown. Docker just kills the container
after its 10 seconds timeout by default.

What this commit does:

1) Add a wrapper as the default executable of Docker container. Which
   starts services through `runit`, reconfigure Gitlab by `gitlab-ctl`
   and gracefully shutdown all services when a SIGTERM is received.
2) Create an `assets` directory for assets.
3) Add `.dockerignore` file.

Now you'll see the following log messages after `docker stop`:
```
SIGTERM signal received, try to gracefully shutdown all services...
ok: down: logrotate: 1s, normally up
ok: down: nginx: 0s, normally up
ok: down: postgresql: 1s, normally up
ok: down: redis: 0s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 0s, normally up
```

Signed-off-by: kfei <kfei@kfei.net>
2015-02-24 19:20:57 +08:00