diff --git a/Dockerfile b/Dockerfile
index b4d6a8125cf8edae7645990830fd2d530ea65dca..acb6b84b12621d365c8eae98b6844ab0143f6e8f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -62,7 +62,7 @@ CMD ["/usr/local/bin/aleksis-docker-startup"]
 # Install assets
 FROM core as assets
 RUN eatmydata aleksis-admin yarn install; \
-    eatmydata aleksis-admin collectstatic; \
+    eatmydata aleksis-admin collectstatic --no-input; \
     rm -rf /usr/local/share/.cache
 
 # Clean up build dependencies
@@ -74,11 +74,9 @@ RUN set -e; \
         libpq-dev \
         libssl-dev \
         libldap2-dev \
-        libsasl2-dev \
-        yarnpkg; \
+        libsasl2-dev; \
     eatmydata apt-get autoremove --purge -y; \
     apt-get clean -y; \
-    rm -f /var/lib/apt/lists/*_*; \
     rm -rf /root/.cache
 
 # Drop privileges for runtime to www-data
@@ -89,3 +87,20 @@ RUN chown -R www-data:www-data \
      ${ALEKSIS_media__root} \
      ${ALEKSIS_backup__location}
 USER 33:33
+
+# Additional steps
+ONBUILD ARG APPS
+ONBUILD USER 0:0
+ONBUILD RUN set -e; \
+            if [ -n "$APPS" ]; then \
+                eatmydata pip install $APPS; \
+            fi; \
+            eatmydata aleksis-admin yarn install; \
+            eatmydata aleksis-admin collectstatic --no-input; \
+            rm -rf /usr/local/share/.cache; \
+            eatmydata apt-get remove --purge -y yarnpkg; \
+            eatmydata apt-get autoremove --purge -y; \
+            apt-get clean -y; \
+            rm -f /var/lib/apt/lists/*_*; \
+            rm -rf /root/.cache
+ONBUILD USER 33:33