Hello!
I'm trying to run the actor using pnpm instead of npm.
In my local, running
pnpm run start:dev
,
pnpm run start:prod
and
apify run
works as expected.
apify push
is also successful.
But, when running the actor in the platform, my main command is not executed, and these are the only logs.
2025-02-10T02:15:51.348Z ACTOR: Pulling Docker image of build ulyHJWVbZ9m9RZ8Ss from repository.
2025-02-10T02:16:04.019Z ACTOR: Creating Docker container.
2025-02-10T02:16:04.753Z ACTOR: Starting Docker container.
Here is my dockerfile.
# Base image with Playwright
FROM apify/actor-node-playwright-chrome:20 AS builder
# Install pnpm
RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.bashrc" SHELL="$(which bash)" bash -
# Use the shell form of RUN to source the .bashrc file before running pnpm
SHELL ["/bin/bash", "-c", "source /home/myuser/.bashrc"]
# Check preinstalled packages
RUN pnpm ls crawlee apify puppeteer playwright
# Copy package files first to optimize caching
COPY package*.json ./
# Install dependencies
RUN pnpm install --frozen-lockfile --audit=false
# Copy source code
COPY . ./
# Ensure correct permissions
RUN chown -R myuser:myuser .
# Build the project
RUN pnpm run build
# Final runtime image
FROM apify/actor-node-playwright-chrome:20 AS runner
# Install pnpm
RUN wget -qO- https://get.pnpm.io/install.sh | ENV="/home/myuser/.bashrc" SHELL="$(which bash)" bash -
# Use the shell form of RUN to source the .bashrc file before running pnpm
SHELL ["/bin/bash", "-c", "source /home/myuser/.bashrc"]
# Copy built application from builder
COPY --from=builder /home/myuser /home/myuser
# Set up user and working directory
USER myuser
WORKDIR /home/myuser
# Install dependencies
RUN pnpm install --frozen-lockfile --audit=false
# Run the image. If you know you won't need headful browsers,
# you can remove the XVFB start script for a micro perf gain.
CMD ./start_xvfb_and_run_cmd.sh && pnpm run start:prod --silent