From c7b81177f93811d644403ad7b9826427e5017e02 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 19 Jul 2023 01:42:40 +0800 Subject: [PATCH] fix(nocodb): pnpm --- packages/nocodb/Dockerfile | 9 ++++++--- packages/nocodb/Dockerfile.local | 11 +++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/nocodb/Dockerfile b/packages/nocodb/Dockerfile index 306b40bde6..9180623828 100644 --- a/packages/nocodb/Dockerfile +++ b/packages/nocodb/Dockerfile @@ -18,15 +18,18 @@ RUN cp $GOPATH/bin/litestream /usr/src/lt ########### # Builder ########### -FROM node:16.17.0-alpine3.15 as builder +FROM node:18.12.1-alpine as builder WORKDIR /usr/src/app +# install pnpm +RUN corepack enable && corepack prepare pnpm@latest --activate + # install node-gyp dependencies RUN apk add --no-cache python3 make g++ # Copy application dependency manifests to the container image. # A wildcard is used to ensure both package.json AND package-lock.json are copied. -# Copying this separately prevents re-running npm install on every code change. +# Copying this separately prevents re-running pnpm install on every code change. COPY ./package*.json ./ COPY ./docker/main.js ./docker/main.js #COPY ./docker/start.sh /usr/src/appEntry/start.sh @@ -36,7 +39,7 @@ COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, # package built code into app.tar.gz & add execute permission to start.sh -RUN npm install --omit=dev --quiet \ +RUN pnpm install --omit=dev --quiet \ && npx modclean --patterns="default:*" --ignore="nc-lib-gui/**,dayjs/**,express-status-monitor/**,@azure/msal-node/dist/**" --run \ && rm -rf ./node_modules/sqlite3/deps \ && tar -czf ../appEntry/app.tar.gz ./* \ diff --git a/packages/nocodb/Dockerfile.local b/packages/nocodb/Dockerfile.local index d4a2e22507..875e16c73c 100644 --- a/packages/nocodb/Dockerfile.local +++ b/packages/nocodb/Dockerfile.local @@ -1,15 +1,18 @@ ########### # Builder ########### -FROM node:16.17.0-alpine3.15 as builder +FROM node:18.12.1-alpine as builder WORKDIR /usr/src/app # install node-gyp dependencies RUN apk add --no-cache python3 make g++ +# install pnpm +RUN corepack enable && corepack prepare pnpm@latest --activate + # Copy application dependency manifests to the container image. # A wildcard is used to ensure both package.json AND package-lock.json are copied. -# Copying this separately prevents re-running npm install on every code change. +# Copying this separately prevents re-running pnpm install on every code change. COPY ./package*.json ./ COPY ./docker/nc-gui/ ./docker/nc-gui/ COPY ./docker/main.js ./docker/index.js @@ -19,8 +22,8 @@ COPY src/public/ ./docker/public/ # install production dependencies, # reduce node_module size with modclean & removing sqlite deps, # package built code into app.tar.gz & add execute permission to start.sh -RUN npm uninstall --save nocodb-sdk -RUN npm install --omit=dev --quiet \ +RUN pnpm uninstall --save nocodb-sdk +RUN pnpm install --omit=dev --quiet \ && npx modclean --patterns="default:*" --ignore="nc-lib-gui/**,dayjs/**,express-status-monitor/**,@azure/msal-node/dist/**" --run \ && rm -rf ./node_modules/sqlite3/deps \ && tar -czf ../appEntry/app.tar.gz ./* \