From 097da7509a01c90b6131e994662227d125676684 Mon Sep 17 00:00:00 2001
From: Bartek Wrona <wrona@syncad.com>
Date: Thu, 28 Sep 2023 18:53:11 +0200
Subject: [PATCH] Added pnp package preinstallation step to cache large and
 rarely changing dependencies (like PlayWright)

---
 Dockerfile.emscripten | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/Dockerfile.emscripten b/Dockerfile.emscripten
index 2f9aa55..8c099aa 100644
--- a/Dockerfile.emscripten
+++ b/Dockerfile.emscripten
@@ -16,6 +16,33 @@ RUN apt-get update && \
     protobuf-compiler && \
     npm install -g pnpm
 
+USER emscripten
+WORKDIR /home/emscripten
+
+ENV LANG=en_US.UTF-8
+SHELL ["/bin/bash", "-c"]
+ENV SHELL=/bin/bash
+ENV HOME=/home/emscripten
+
+# Preinstall large deps (rare changed) to eliminate pulling them from web each time
+ENV PNPM_HOME="/home/emscripten/.local/share/pnpm"
+ENV PATH="${PNPM_HOME}:${PATH}"
+
+RUN source "${EMSDK}/emsdk_env.sh" && \
+    pnpm add -g \
+      playwright@~1.38.1 \
+      ts-proto@~1.156.7 \
+      typescript@~4.4.4 \
+      protobufjs@~7.2.5 && \
+    pnpm dlx playwright install
+
+USER root
+WORKDIR /home/emscripten 
+ENV PNPM_HOME="/home/emscripten/.local/share/pnpm"
+ENV PATH="${PNPM_HOME}:${PATH}"
+
+RUN pnpm dlx playwright install-deps
+
 FROM supplemented_tools_sdk AS lib_source
 
 ARG BOOST_VERSION_TAG=boost-1.82.0
-- 
GitLab