diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..42a4e395c33e47800b8dc4a52b55e5a6abd38e5f
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,7 @@
+.env
+.git
+*.pyc
+*.egg
+*.egg-info
+.cache
+.pytest_cache
diff --git a/Dockerfile b/Dockerfile
index 188f09f8e84d626dd419073cc2b33c7e78cc17c9..8c015f2b22350f1385ae55e40da81a185bf52a28 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,23 +1,18 @@
-FROM python:3.6
+FROM python:3.7-alpine
 
 RUN mkdir /code
 WORKDIR /code
-ADD requirements.txt /code/
+COPY requirements.txt ./
 
-RUN apt-get update && apt-get install -y --no-install-recommends \
-        nginx \
-        supervisor \
-    && apt-get clean \
-    && rm -rf /var/lib/apt/lists/* \
-    && apt-get autoremove -y --purge
+RUN apk add --no-cache nginx supervisor libpq \
+    && apk add --no-cache --virtual=.build-deps build-base postgresql-dev libffi-dev \
+    && pip install -r requirements.txt \
+    && pip install gunicorn \
+    && apk del .build-deps
+RUN rm /etc/nginx/conf.d/default.conf \
+    && echo "daemon off;" >> /etc/nginx/nginx.conf
 
-COPY ./requirements.txt /code/requirements.txt
-RUN pip install -r requirements.txt && \
-    pip install gunicorn && \
-    rm /etc/nginx/sites-enabled/default && \
-    echo "daemon off;" >> /etc/nginx/nginx.conf
-
-ADD . /code/
+COPY . ./
 
 RUN DATABASE_URL=none SECRET_KEY=xxx python manage.py collectstatic --noinput
 
@@ -25,8 +20,6 @@ COPY conf/supervisor.conf /etc/supervisor/conf.d/supervisor.conf
 COPY conf/nginx.conf /etc/nginx/conf.d/openlobby-server.conf
 COPY conf/entrypoint.sh ./
 
-WORKDIR /code
-
 EXPOSE 8010
 
 ENTRYPOINT ["./entrypoint.sh"]
diff --git a/conf/entrypoint.sh b/conf/entrypoint.sh
old mode 100644
new mode 100755
index 1d11868c922336fcfdc03490ee15c8948ff9f2a5..0f783eb8fb15815145ce10f915a5cb074bb26caf
--- a/conf/entrypoint.sh
+++ b/conf/entrypoint.sh
@@ -1,9 +1,11 @@
-#!/bin/bash
+#!/bin/sh
 
 # migrate
 python manage.py migrate
 
 # Create log dirs and files
-mkdir -p $( dirname $(cat /etc/supervisor/supervisord.conf  | grep logfile= | grep "\.log" | sed s/.*logfile=// ) )
-touch $( cat /etc/supervisor/supervisord.conf  | grep logfile= | grep "\.log" | sed s/.*logfile=// )
-exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf --nodaemon
\ No newline at end of file
+mkdir -p $( dirname $(cat /etc/supervisor/conf.d/supervisor.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// ) )
+touch $( cat /etc/supervisor/conf.d/supervisor.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// )
+mkdir /run/nginx
+
+exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf --nodaemon
diff --git a/conf/supervisor.conf b/conf/supervisor.conf
index eaf08f13b5651253ff8097d650e6c47c131364ab..b716c20ed98010dfc4f3638069781a1b74101dd6 100644
--- a/conf/supervisor.conf
+++ b/conf/supervisor.conf
@@ -14,10 +14,9 @@ stdout_logfile_maxbytes=0
 stderr_logfile=/dev/stderr
 stderr_logfile_maxbytes=0
 
-
 [supervisord]
-logfile = /var/log/supervisor/supervisord.log
-logfile_maxbytes = 10MB
-logfile_backups = 5
-loglevel = info
-pidfile = /var/run/supervisord.pid
\ No newline at end of file
+logfile=/var/log/supervisor/supervisord.log
+logfile_maxbytes=10MB
+logfile_backups=5
+loglevel=info
+pidfile=/var/run/supervisord.pid
diff --git a/requirements.in b/requirements.in
index 443ff41770ea32e01a9094f1d79c881e7cff8081..c240013d55ad6b3b5cb83a0bec02cf1269361c3f 100644
--- a/requirements.in
+++ b/requirements.in
@@ -1,3 +1,4 @@
+psycopg2-binary
 Django
 graphene
 graphene-django
@@ -9,5 +10,4 @@ pyjwt
 iso8601
 arrow
 bleach
-psycopg2
 dsnparse
diff --git a/requirements.txt b/requirements.txt
index 37a09a9513a7cae20e3a2aa5b8f264b15765fe14..f6eb71815d1a9d98c931a14e1d84719c3ab338a0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -32,7 +32,7 @@ mako==1.0.7               # via oic
 markupsafe==1.0           # via mako
 oic==0.14.0
 promise==2.2.1            # via graphene, graphene-django, graphql-core, graphql-relay
-psycopg2==2.7.5
+psycopg2-binary==2.7.5
 pycparser==2.19           # via cffi
 pycryptodomex==3.6.6      # via oic, pyjwkest
 pyjwkest==1.4.0           # via oic