Skip to content

Commit 5d34989

Browse files
committed
Add pnpm support
1 parent 5a431c2 commit 5d34989

2 files changed

Lines changed: 37 additions & 6 deletions

File tree

Dockerfile

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,27 @@ FROM base AS deps
99
COPY . /app
1010
WORKDIR ${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
1321
RUN \
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
2944
RUN \
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"

Dockerfile.dev

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,28 @@ ARG FOLDER=/app
33

44
FROM node:24.13.0-slim
55

6+
# Enable corepack
7+
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
8+
RUN corepack enable
9+
10+
# Setup PNPM
11+
ENV PNPM_HOME="/pnpm"
12+
ENV PATH="$PNPM_HOME:$PATH"
13+
RUN mkdir -p /home/codespace/.pnpm-store /pnpm \
14+
&& chown -R 1000:1000 /home/codespace/.pnpm-store /pnpm
15+
16+
617
COPY . /app
718
WORKDIR ${FOLDER}
819

920
ENV NODE_ENV=development
1021

1122
USER 1000:1000
1223

24+
# Apply PNPM settings to be consistent with devcontainer
25+
RUN pnpm config set node-linker hoisted --global \
26+
&& pnpm config set store-dir /home/codespace/.pnpm-store --global
27+
1328
EXPOSE 3000
1429
ENV PORT=3000
1530
ENV HOSTNAME="0.0.0.0"

0 commit comments

Comments
 (0)