From 6535a5a2931c0597f510dc985ecd84679df697d0 Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 18 Jan 2026 20:29:57 +0000 Subject: docker: switch to jemalloc --- docker/Dockerfile | 9 +++++++++ docker/root/etc/s6-overlay/s6-rc.d/init-db-migration/run | 1 + docker/root/etc/s6-overlay/s6-rc.d/svc-web/run | 1 + docker/root/etc/s6-overlay/s6-rc.d/svc-workers/run | 1 + 4 files changed, 12 insertions(+) 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 -- cgit v1.2.3-70-g09d2