From 88902c3b380654a3010f03194b9780989289dbb1 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Sun, 3 May 2026 23:17:33 +0700 Subject: [PATCH] Fix Dockerfile for emdash monorepo workspace and package builds - Add build steps for audit-log and gutenberg-to-portable-text - Change WORKDIR to /app/emdash so workspace symlinks resolve - Adapt entrypoint.sh paths for /app/emdash workspace - Copy seed file and create storage directory - Copy audit-log and gutenberg-to-portable-text to node_modules Co-Authored-By: Claude Opus 4.6 --- Dockerfile | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2a2ef9f..1aae2fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,12 +24,14 @@ RUN cd packages/core && pnpm build RUN cd packages/auth && pnpm build RUN cd packages/blocks && pnpm install && pnpm build RUN cd packages/admin && pnpm build +RUN cd packages/plugins/audit-log && pnpm build +RUN cd packages/gutenberg-to-portable-text && pnpm install && pnpm build RUN cd packages/blog-template && pnpm build -# Final stage - copy everything from deps stage (which now has the built artifacts) +# Final stage - run from emdash workspace so symlinks resolve correctly FROM deps -WORKDIR /app +WORKDIR /app/emdash ENV NODE_ENV=production ENV HOST=0.0.0.0 @@ -39,7 +41,22 @@ COPY --from=0 /app/emdash/packages/blog-template/dist ./dist EXPOSE 4321 +# Copy and adapt entrypoint to work from /app/emdash COPY entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh +RUN chmod +x /entrypoint.sh && \ + sed -i 's|cd /app|cd /app/emdash|g' /entrypoint.sh && \ + sed -i 's|pnpm exec emdash seed|pnpm exec emdash seed packages/blog-template/seed/seed.json|g' /entrypoint.sh && \ + sed -i 's|DB_PATH="/app/storage/data.db"|DB_PATH="/app/emdash/data.db"|g' /entrypoint.sh && \ + sed -i 's|UPLOADS_PATH="/app/storage/uploads"|UPLOADS_PATH="/app/emdash/storage/uploads"|g' /entrypoint.sh + +# Copy seed file and create storage directory +COPY --from=0 /app/emdash/packages/blog-template/seed ./seed +RUN mkdir -p /app/storage/uploads + +# Copy audit-log plugin to node_modules (it's imported by virtual_astro_middleware.mjs) +COPY --from=0 /app/emdash/packages/plugins/audit-log ./node_modules/@emdash-cms/plugin-audit-log + +# Copy gutenberg-to-portable-text (nested in core's node_modules, needed by search) +COPY --from=0 /app/emdash/packages/core/node_modules/@emdash-cms/gutenberg-to-portable-text ./node_modules/@emdash-cms/gutenberg-to-portable-text ENTRYPOINT ["/entrypoint.sh"]