diff --git a/CHANGELOG.md b/CHANGELOG.md index 24b704c2b..5bb3cdda8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased ### Fixed +* Terminate gracefully on SIGTERM (for use in Docker) - @recmo ## [0.3.1.0] - 2016-02-28 diff --git a/Dockerfile b/Dockerfile index 6d046ba5a..3fc7efaba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ RUN wget http://github.com/begriffs/postgrest/releases/download/v${POSTGREST_VER mv postgrest /usr/local/bin/postgrest && \ rm postgrest-${POSTGREST_VERSION}-ubuntu.tar.xz -CMD postgrest postgres://${PG_ENV_POSTGRES_USER}:${PG_ENV_POSTGRES_PASSWORD}@${PG_PORT_5432_TCP_ADDR}:${PG_PORT_5432_TCP_PORT}/${PG_ENV_POSTGRES_DB} \ +CMD exec postgrest postgres://${PG_ENV_POSTGRES_USER}:${PG_ENV_POSTGRES_PASSWORD}@${PG_PORT_5432_TCP_ADDR}:${PG_PORT_5432_TCP_PORT}/${PG_ENV_POSTGRES_DB} \ --port 3000 \ --schema ${POSTGREST_SCHEMA} \ --anonymous ${POSTGREST_ANONYMOUS} \ diff --git a/src/PostgREST/Main.hs b/src/PostgREST/Main.hs index f7a09fefc..68d3a12c1 100644 --- a/src/PostgREST/Main.hs +++ b/src/PostgREST/Main.hs @@ -60,10 +60,11 @@ main = do #ifndef mingw32_HOST_OS tid <- myThreadId - void $ installHandler keyboardSignal (Catch $ do - P.release pool - throwTo tid UserInterrupt - ) Nothing + forM_ [sigINT, sigTERM] $ \sig -> + void $ installHandler sig (Catch $ do + P.release pool + throwTo tid UserInterrupt + ) Nothing #endif result <- P.use pool $ do