@@ -9,12 +9,27 @@ FROM base AS deps
99COPY . /app
1010WORKDIR ${FOLDER}
1111
12+ # Enable corepack
13+ ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
14+ RUN corepack enable
15+
16+ # Setup PNPM
17+ ENV PNPM_HOME="/pnpm"
18+ ENV PATH="$PNPM_HOME:$PATH"
19+
1220# Install dependencies based on the preferred package manager
1321RUN \
14- if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
15- elif [ -f package-lock.json ]; then npm ci; \
16- elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
17- else echo "Lockfile not found." && exit 1; \
22+ if [ -f yarn.lock ]; then \
23+ yarn install --frozen-lockfile || yarn install; \
24+ elif [ -f package-lock.json ]; then \
25+ npm ci || npm install; \
26+ elif [ -f pnpm-lock.yaml ]; then \
27+ pnpm install --frozen-lockfile || pnpm install; \
28+ elif [ -f package.json ]; then \
29+ echo "Lockfile not found. Falling back to npm install (non-deterministic install)." ; \
30+ npm install; \
31+ else \
32+ echo "No package manifest found. Skipping install." ; \
1833 fi
1934
2035# Create the node_modules directory if it still does not exist
@@ -29,8 +44,9 @@ COPY --from=deps ${FOLDER}/node_modules ./node_modules
2944RUN \
3045 if [ -f yarn.lock ]; then yarn run build; \
3146 elif [ -f package-lock.json ]; then npm run build; \
32- elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
33- else echo "Lockfile not found." && exit 1; \
47+ elif [ -f pnpm-lock.yaml ]; then pnpm run build; \
48+ elif [ -f package.json ]; then npm run build; \
49+ else echo "No package manifest found. Skipping build step." ; \
3450 fi
3551
3652# Production image, copy all the files and run "npm start"
0 commit comments