diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..05b2ecab399014603e93bf3cdfb969fdd99c1e1a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,18 @@
+FROM alpine:3.10
+
+COPY cpanfile /
+ENV EV_EXTRA_DEFS -DEV_NO_ATFORK
+
+RUN apk update && \
+  apk add perl perl-io-socket-ssl perl-dev perl-json perl-yaml wget curl make && \
+  curl -L https://cpanmin.us | perl - App::cpanminus && \
+  cpanm --installdeps . -M https://cpan.metacpan.org && \
+  apk del perl-dev g++ make wget curl && \
+  rm -rf /root/.cpanm/* /usr/local/share/man/* /cpanfile
+
+ADD . /opt/rvvote
+
+EXPOSE 3000
+
+WORKDIR /opt/rvvote
+CMD ./script/rvvote daemon
diff --git a/cpanfile b/cpanfile
new file mode 100644
index 0000000000000000000000000000000000000000..09671ecb2c3c6af99e173bb4c23731d887d5eded
--- /dev/null
+++ b/cpanfile
@@ -0,0 +1 @@
+requires "Mojolicious";