mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
fix(typescript): Use consistent typescript configs make all packages inherit tsconfig from the root tsconfig skips building tests. reformat all tsconfigs with prettier.
39 lines
1.0 KiB
Docker
39 lines
1.0 KiB
Docker
ARG NODE_VERSION=16
|
|
|
|
# 1. Create an image to build n8n
|
|
FROM n8nio/base:${NODE_VERSION} as builder
|
|
|
|
RUN \
|
|
apk --no-cache add git && \
|
|
npm install -g run-script-os turbo
|
|
|
|
COPY turbo.json package.json package-lock.json tsconfig.json ./
|
|
COPY packages ./packages
|
|
|
|
RUN chown -R node:node .
|
|
RUN npm config set legacy-peer-deps true
|
|
|
|
USER node
|
|
|
|
RUN \
|
|
npm ci && \
|
|
npm run build && \
|
|
# TODO: removing dev dependecies is deleting `bn.js`, which breaks the Snowflake node
|
|
npm prune --omit=dev && \
|
|
npm i --omit=dev bn.js && \
|
|
find . -type f -name "*.ts" -o -name "*.js.map" -o -name "*.vue" -o -name "tsconfig.json" | xargs rm &&\
|
|
rm -rf node_modules/.cache packages/*/node_modules/.cache packages/*/.turbo .config .npm /tmp/*
|
|
|
|
|
|
# 2. Start with a new clean image with just the code that is needed to run n8n
|
|
FROM n8nio/base:${NODE_VERSION}
|
|
COPY --from=builder /home/node ./
|
|
COPY docker/images/n8n-custom/docker-entrypoint.sh ./
|
|
|
|
RUN \
|
|
mkdir .n8n && \
|
|
chown node:node .n8n
|
|
USER node
|
|
ENV NODE_ENV=production
|
|
ENTRYPOINT ["tini", "--", "./docker-entrypoint.sh"]
|