diff --git a/keyserver/Dockerfile b/keyserver/Dockerfile
--- a/keyserver/Dockerfile
+++ b/keyserver/Dockerfile
@@ -2,12 +2,24 @@
 
 WORKDIR /app
 
+#-------------------------------------------------------------------------------
+# STEP 0: INSTALL PREREQS
+# Install prereqs first so we don't have to reinstall them if anything changes
+#-------------------------------------------------------------------------------
+
 # We need python2 for a build script that the sqlite3 npm package uses
+# We use rsync in the prod-build yarn script
 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
   python2 \
+  rsync \
   && rm -rf /var/lib/apt/lists/*
 RUN update-alternatives --install /usr/bin/python python /usr/bin/python2 2
 
+#-------------------------------------------------------------------------------
+# STEP 1: YARN CLEANINSTALL
+# We run yarn cleaninstall before copying most of the files in for build caching
+#-------------------------------------------------------------------------------
+
 # Copy in package.json and yarn.lock files
 COPY package.json yarn.lock .
 COPY keyserver/package.json keyserver/.flowconfig keyserver/
@@ -21,5 +33,5 @@
 COPY native/ios/pod-patch native/ios/pod-patch/
 COPY native/ios/Podfile native/ios/
 
-# We run yarn cleaninstall before copying most of the files in for build caching
+# Actually run yarn
 RUN yarn cleaninstall