11# Define the base image used for the rest of the steps
2- FROM node:24.13 .0-alpine AS base
2+ FROM node:24.14 .0-alpine AS base
33# Install Corepack to manage the package manager version. The --force
44# flag is required to allow overriding pre-existing npm and yarn binaries.
55RUN npm install --global --force corepack
@@ -11,7 +11,7 @@ RUN mkdir /app && chown node:node app
1111USER 1000
1212WORKDIR /app
1313# Ensure that the correct version of pnpm is installed
14- COPY --chown=node:node package.json ./
14+ COPY --chown=node:node package.json .
1515RUN corepack install \
1616 && rm package.json
1717
@@ -24,19 +24,22 @@ RUN apk add --no-cache \
2424 git \
2525 httpie \
2626 openssh \
27- ripgrep
27+ procps-ng \
28+ ripgrep \
29+ tmux
30+ RUN mkdir -p /workspace \
31+ && chown -R node:node /workspace
2832# Run as uid=1000(node)
2933USER 1000
30- # Allow npm and pnpm to install packages with --global without sudo.
31- RUN mkdir ~/.npm-global \
32- && mkdir -p ~/.pnpm-global/bin \
33- && npm config set -L user prefix ~/.npm-global \
34- && pnpm config set -g global-bin-dir ~/.pnpm-global/bin
3534ENV NODE_ENV=development
36- ENV PATH="$PATH:/home/node/.local/bin:/home/node/.npm-global/bin:/home/node/.pnpm-global/bin"
37- # Create directories before (anonymous or named) volumes are be mounted
38- # to them, so that the ownership will be correct.
35+ # Create directories before volumes are mounted to them, so that the
36+ # ownership will be correct.
3937RUN mkdir ~/.vscode-server
38+ # Allow npm install packages with --global without sudo.
39+ RUN mkdir ~/.npm-global \
40+ && npm config set -L user prefix ~/.npm-global
41+ # Add typical tool binary locations (e.g. coding agents) to PATH.
42+ ENV PATH="$PATH:/home/node/.local/bin:/home/node/.npm-global/bin"
4043
4144FROM base AS dev-deps
4245COPY --chown=node:node package.json pnpm-workspace.yaml pnpm-lock.yaml ./
0 commit comments