From 2574334f81f7aa305dfac71f4eb2a584d1762863 Mon Sep 17 00:00:00 2001
From: timothycarambat <rambat1010@gmail.com>
Date: Fri, 19 Jul 2024 19:18:41 -0700
Subject: [PATCH] patch dockerfile for arm64 due to bad chromium location

---
 docker/Dockerfile | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/docker/Dockerfile b/docker/Dockerfile
index 7f03318c1..5c24fa938 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -60,7 +60,7 @@ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
 ENV CHROME_PATH=/app/chrome-linux/chrome
 ENV PUPPETEER_EXECUTABLE_PATH=/app/chrome-linux/chrome
 
-RUN echo "Done running arm64 specific installtion steps"
+RUN echo "Done running arm64 specific installation steps"
 
 #############################################
 
@@ -129,12 +129,19 @@ RUN yarn build && \
 WORKDIR /app
 
 # Install server layer & build node-llama-cpp
-FROM build AS server-build
+# Also pull and build collector deps (chromium issues prevent bad bindings)
+FROM build AS backend-build
 COPY ./server /app/server/
 WORKDIR /app/server
 RUN yarn install --production --network-timeout 100000 && yarn cache clean
 WORKDIR /app
 
+# Install collector dependencies
+COPY ./collector/ ./collector/
+WORKDIR /app/collector
+ENV PUPPETEER_DOWNLOAD_BASE_URL=https://storage.googleapis.com/chrome-for-testing-public 
+RUN yarn install --production --network-timeout 100000 && yarn cache clean
+
 # Compile Llama.cpp bindings for node-llama-cpp for this operating system.
 # Creates appropriate bindings for the OS
 USER root
@@ -143,24 +150,10 @@ RUN npx --no node-llama-cpp download
 WORKDIR /app
 USER anythingllm
 
-# Build collector deps (this also downloads proper chrome for collector in /app/.cache so that needs to be
-# transferred properly in prod-build stage.
-FROM build AS collector-build
-COPY ./collector /app/collector
-WORKDIR /app/collector
-ENV PUPPETEER_DOWNLOAD_BASE_URL=https://storage.googleapis.com/chrome-for-testing-public 
-RUN yarn install --production --network-timeout 100000 && yarn cache clean
-WORKDIR /app
-
-FROM build AS production-build
+# Since we are building from backend-build we just need to move built frontend into server/public
+FROM backend-build AS production-build
 WORKDIR /app
-# Copy the server 
-COPY --chown=anythingllm:anythingllm --from=server-build /app/server/ /app/server/
-# Copy built static frontend files to the server public directory
 COPY --chown=anythingllm:anythingllm --from=frontend-build /app/frontend/dist /app/server/public
-# Copy the collector
-COPY --chown=anythingllm:anythingllm --from=collector-build /app/collector/ /app/collector/
-COPY --chown=anythingllm:anythingllm --from=collector-build /app/.cache/puppeteer /app/.cache/puppeteer
 
 # No longer needed? (deprecated)
 # WORKDIR /app/server
-- 
GitLab