diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.3.5.6
+* Add Dockerfile
+
 ## 0.3.5.5
 * Adding tested compatibility with GHC 8.4
 
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,55 @@
+# Build Hapistrano
+FROM alpine:3.7 as build-env
+
+MAINTAINER Javier Casas <jcasas@stackbuilders.com>
+
+RUN echo '@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories
+RUN apk update \
+ && apk add \
+        alpine-sdk \
+        bash \
+        ca-certificates \
+        cabal@testing \
+        ghc-dev@testing \
+        ghc@testing \
+        git \
+        gmp-dev \
+        gnupg \
+        libffi-dev \
+        linux-headers \
+        upx@testing \
+        zlib-dev
+
+WORKDIR /hapistrano
+
+COPY hapistrano.cabal .
+
+RUN cabal update
+RUN cabal install --only-dependencies
+
+COPY src/ src/
+COPY app/ app/
+COPY script/ script/
+COPY LICENSE .
+COPY Setup.hs .
+# So Hapistrano is built with version information
+COPY .git/ .git/
+
+RUN cabal configure -f static
+RUN cabal build hap
+
+# Compress the resulting binary
+RUN upx /hapistrano/dist/build/hap/hap
+
+# Copy Hapistrano to a basic Alpine with SSH
+FROM alpine:3.7
+
+RUN apk update \
+ && apk add \
+        openssh-client
+
+RUN mkdir ~/.ssh
+
+COPY --from=build-env /hapistrano/dist/build/hap/hap /bin/hap
+
+ENTRYPOINT ["/bin/hap"]
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -156,6 +156,11 @@
 If you don't specify `host` and `targets`, `hap` will assume `localhost` as
 usually, which is mainly useful for testing.
 
+## Docker
+
+If you would like to use Docker, there is a lightweight image 
+available on [Docker Hub](https://hub.docker.com/r/stackbuilders/hapistrano/).
+
 ## License
 
 MIT, see [the LICENSE file](LICENSE).
diff --git a/hapistrano.cabal b/hapistrano.cabal
--- a/hapistrano.cabal
+++ b/hapistrano.cabal
@@ -1,5 +1,5 @@
 name:                hapistrano
-version:             0.3.5.5
+version:             0.3.5.6
 synopsis:            A deployment library for Haskell applications
 description:
   .
@@ -22,7 +22,7 @@
 license-file:        LICENSE
 author:              Justin Leitgeb
 maintainer:          justin@stackbuilders.com
-copyright:           2015-2017 Stack Builders Inc.
+copyright:           2015-2018 Stack Builders Inc.
 category:            System
 homepage:            https://github.com/stackbuilders/hapistrano
 bug-reports:         https://github.com/stackbuilders/hapistrano/issues
@@ -31,6 +31,7 @@
 tested-with:         GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.2
 extra-source-files:  CHANGELOG.md
                    , README.md
+                   , Dockerfile
 data-files:          script/clean-build.sh
 
 flag dev
@@ -38,6 +39,11 @@
   manual:             True
   default:            False
 
+flag static
+  description:        Build a static binary.
+  manual:             True
+  default:            False
+
 library
   hs-source-dirs:      src
   exposed-modules:     System.Hapistrano
@@ -78,7 +84,10 @@
   if flag(dev)
     ghc-options:       -threaded -rtsopts -with-rtsopts=-N -Wall -Werror
   else
-    ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall
+    if flag(static)
+      ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall -static -optl-static
+    else
+      ghc-options:       -threaded -rtsopts -with-rtsopts=-N -O2 -Wall
   default-language:    Haskell2010
 
 test-suite test
