aboutsummaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-17 21:34:04 +0000
committerMohamedBassem <me@mbassem.com>2024-02-17 21:54:57 +0000
commitf78cbe0bab0928a01d06185cbf0dece3505f8e77 (patch)
tree45e93d5122373cfd434025c6bb3c78e4a92ceb3e /Dockerfile
parente247b141a98ab7b55d54ca5c7be8347fd076bda2 (diff)
downloadkarakeep-f78cbe0bab0928a01d06185cbf0dece3505f8e77.tar.zst
build: Fix docker images
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile31
1 files changed, 18 insertions, 13 deletions
diff --git a/Dockerfile b/Dockerfile
index 668c6a46..8e9c8472 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -38,7 +38,7 @@ RUN cd packages/db && \
RUN corepack enable && \
cd packages/web/ && \
- yarn run build
+ yarn next experimental-compile
FROM base AS web
WORKDIR /app
@@ -46,9 +46,6 @@ WORKDIR /app
ENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1
-# RUN addgroup --system --gid 1001 nodejs
-# RUN adduser --system --uid 1001 nextjs
-
COPY --from=web_builder --chown=node:node /app/packages/web/.next/standalone ./
COPY --from=web_builder /app/packages/web/public ./packages/web/public
@@ -61,9 +58,7 @@ RUN chown node:node ./packages/web/.next
COPY --from=web_builder --chown=node:node /app/packages/web/.next/static ./packages/web/.next/static
WORKDIR /app/packages/web
-
-USER node
-
+USER root
EXPOSE 3000
ENV PORT 3000
@@ -89,10 +84,9 @@ RUN cd packages/db && \
yarn prisma generate
WORKDIR /app/packages/db
-USER node
+USER root
CMD ["yarn", "prisma", "migrate", "deploy"]
-# CMD ["ls", "-la", "/data"]
################# The workers ##############
@@ -100,11 +94,22 @@ CMD ["yarn", "prisma", "migrate", "deploy"]
FROM base AS workers
WORKDIR /app
+COPY --from=deps /app/node_modules ./node_modules
+
# Install chromium needed for puppeteer
-RUN apk add chromium
-env PUPPETEER_EXECUTABLE_PATH "/usr/bin/chromium-browser"
+RUN apk add --no-cache chromium runuser
+ENV PUPPETEER_SKIP_DOWNLOAD true
+ENV CHROME_PATH "/usr/bin/chromium-browser"
+ENV BROWSER_EXECUTABLE_PATH "/app/start-chrome.sh"
+ENV BROWSER_USER_DATA_DIR="/tmp/chrome"
+
+RUN echo '#!/bin/sh' >> /app/start-chrome.sh && \
+ echo 'set -x;' >> /app/start-chrome.sh && \
+ echo 'id -u chrome &>/dev/null || adduser -S chrome' >> /app/start-chrome.sh && \
+ echo 'mkdir -p /tmp/chrome && chown chrome /tmp/chrome' >> /app/start-chrome.sh && \
+ echo 'runuser -u chrome -- $CHROME_PATH $@' >> /app/start-chrome.sh && \
+ chmod +x /app/start-chrome.sh
-COPY --from=deps /app/node_modules ./node_modules
COPY packages packages
COPY package.json yarn.lock .yarnrc.yml .
@@ -112,6 +117,6 @@ RUN cd packages/db && \
yarn prisma generate
WORKDIR /app/packages/workers
-USER node
+USER root
CMD ["yarn", "run", "start:prod"]