aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2026-01-18 20:29:57 +0000
committerMohamed Bassem <me@mbassem.com>2026-01-18 20:30:09 +0000
commit6535a5a2931c0597f510dc985ecd84679df697d0 (patch)
tree05f468525072fc58e7300043f2a199734693b8aa /docker
parentdfad809fe2fcc5c6179fce2e0b3d36331232442f (diff)
downloadkarakeep-6535a5a2931c0597f510dc985ecd84679df697d0.tar.zst
docker: switch to jemalloc
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile9
-rw-r--r--docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run1
-rw-r--r--docker/root/etc/s6-overlay/s6-rc.d/svc-web/run1
-rw-r--r--docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run1
4 files changed, 12 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 13b33678..83e94264 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -122,6 +122,7 @@ RUN apt-get update \
curl \
graphicsmagick \
ghostscript \
+ libjemalloc2 \
&& rm -rf /var/lib/apt/lists/*
ARG TARGETARCH
@@ -144,6 +145,14 @@ ENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1
ENV NEXTAUTH_URL_INTERNAL=http://localhost:${PORT}
+# Create symlink for jemalloc based on architecture
+ARG TARGETARCH
+RUN if [ "$TARGETARCH" = "arm64" ]; then \
+ ln -s /usr/lib/aarch64-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so; \
+ else \
+ ln -s /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so; \
+ fi
+
COPY --from=base --chown=node:node /app/apps/web/.next/standalone ./
COPY --from=base /app/apps/web/public ./apps/web/public
COPY --from=base /db_migrations /db_migrations
diff --git a/docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run b/docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run
index f8cfe71b..72334313 100644
--- a/docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run
+++ b/docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run
@@ -3,4 +3,5 @@
echo "Running db migration script";
cd /db_migrations;
+export LD_PRELOAD=/usr/local/lib/libjemalloc.so
exec node index.js;
diff --git a/docker/root/etc/s6-overlay/s6-rc.d/svc-web/run b/docker/root/etc/s6-overlay/s6-rc.d/svc-web/run
index 83e9b9f1..3eab16a4 100644
--- a/docker/root/etc/s6-overlay/s6-rc.d/svc-web/run
+++ b/docker/root/etc/s6-overlay/s6-rc.d/svc-web/run
@@ -2,4 +2,5 @@
# shellcheck shell=bash
cd /app/apps/web;
+export LD_PRELOAD=/usr/local/lib/libjemalloc.so
exec node server.js;
diff --git a/docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run b/docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run
index 220f2e9b..b8b78c23 100644
--- a/docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run
+++ b/docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run
@@ -2,4 +2,5 @@
# shellcheck shell=bash
cd /app/apps/workers;
+export LD_PRELOAD=/usr/local/lib/libjemalloc.so
exec node dist/index.js