Background: I am a newbie whom has very minimal coding knowledge trying to learn and do some automation for me personal project. I am very sorry on the formatting as I’m not sure how to format it.
Describe the problem/error/question
I tried to install poppler-utils for pdf2image and follow the instruction to install on Docker. So basically this is what I followed.
1. Install poppler-utils on Docker n8n
Docker n8n (Most Common)
If you’re running n8n in Docker, you need to create a custom Docker image:
Option 1: Custom Dockerfile
FROM n8nio/n8n:latest
# Switch to root to install system packages
USER root
# Install poppler-utils
RUN apk add --no-cache poppler-utils
# Switch back to node user
USER node
Build and run:
docker build -t n8n-with-poppler .
docker run -it --rm --name n8n -p 5678:5678 n8n-with-popplerxt will be hidden
Problem:
These are the step I did to create the Dockerfile:
I created a .txt file and remove .txt and name it as abcdockerfile (no format, no .anything)
I put it in a folder
I open Docker terminal, I change the directory to the folder that contain dockerfile with cd command
Then I ran these following line:
docker build -t n8n-with-poppler .
docker run -it --rm --name n8n -p 5678:5678 n8n-with-poppler
The error message:
docker build -t n8n-with-poppler .
>> docker run -it --rm --name n8n -p 5678:5678 n8n-with-poppler
[+] Building 2.3s (6/6) FINISHED docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 113B 0.0s
=> [internal] load metadata for docker.io/n8nio/n8n:latest 1.9s
=> [auth] n8nio/n8n:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [1/2] FROM docker.io/n8nio/n8n:latest@sha256:85214df20cd7bc020f8e4b0f60f87ea87f0a754ca7ba3d1ccdfc503ccd6e7f9c 0.0s
=> => resolve docker.io/n8nio/n8n:latest@sha256:85214df20cd7bc020f8e4b0f60f87ea87f0a754ca7ba3d1ccdfc503ccd6e7f9c 0.0s
=> ERROR [2/2] RUN apk add --no-cache poppler-utils 0.3s
------
> [2/2] RUN apk add --no-cache poppler-utils:
0.242 /bin/sh: apk: not found
------
dockerfile:4
--------------------
2 |
3 | USER root
4 | >>> RUN apk add --no-cache poppler-utils
5 | USER node
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c apk add --no-cache poppler-utils" did not complete successfully: exit code: 127
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/izocvzd913bipq7t1wnmipbrt
Unable to find image 'n8n-with-poppler:latest' locally
docker: Error response from daemon: pull access denied for n8n-with-poppler, repository does not exist or may require 'docker login'
Run 'docker run --help' for more information
I ask AI, it said use apt instead of apk, I update the dockerfile with notepad into this:
FROM n8nio/n8n
USER root
RUN apk add --no-cache poppler-utils
USER node
I ran again and:
[+] Building 1.4s (5/5) FINISHED docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 185B 0.0s
=> [internal] load metadata for docker.io/n8nio/n8n:latest 1.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [1/2] FROM docker.io/n8nio/n8n:latest@sha256:85214df20cd7bc020f8e4b0f60f87ea87f0a754ca7ba3d1ccdfc503ccd6e7f9c 0.0s
=> => resolve docker.io/n8nio/n8n:latest@sha256:85214df20cd7bc020f8e4b0f60f87ea87f0a754ca7ba3d1ccdfc503ccd6e7f9c 0.0s
=> ERROR [2/2] RUN apt-get update && apt-get install -y poppler-utils && rm -rf /var/lib/apt/lists/* 0.2s
------
> [2/2] RUN apt-get update && apt-get install -y poppler-utils && rm -rf /var/lib/apt/lists/*:
0.203 /bin/sh: apt-get: not found
dockerfile:4
--------------------
3 | USER root
4 | >>> RUN apt-get update && \
5 | >>> apt-get install -y poppler-utils && \
6 | >>> rm -rf /var/lib/apt/lists/*
7 | USER node
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y poppler-utils && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 127
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/r9uh62l9ukivsjyrp4cqpsduy
Unable to find image 'n8n-with-poppler:latest' locally
docker: Error response from daemon: pull access denied for n8n-with-poppler, repository does not exist or may require 'docker login'
I can’t find a solution and don’t know where I did wrong. So I tried another one, installing it on Windows:
Install Poppler-utils on Windows -
Windows
Method 1: Pre-compiled Binaries (Easiest)
-
Download poppler: Go to https://github.com/oschwartz10612/poppler-windows/releases
-
Download the latest
poppler-xx.xx.x_x64.7zfile -
Extract to
C:\poppler(or your preferred location) -
Add to PATH:
-
Open System Properties → Advanced → Environment Variables
-
Add
C:\poppler\Library\binto your system PATH -
Restart your terminal/command prompt
-
-
Verify: Open new command prompt and run
pdftoppm --version
I tried pdftoppm --version it results I/O Error: Couldn’t open file ‘–version’: No error."
So I tried install it anyway:
n8n pdf2image Installation
Via n8n Community Nodes (Recommended)
-
Go to Settings > Community Nodes in your n8n instance
-
Click Install
-
Enter:
n8n-nodes-pdf2image -
Click Install
-
Restart n8n
Manual Installation
-
Navigate to your n8n installation directory
-
Install the package:
npm install n8n-nodes-pdf2image -
Restart n8n
I tried both way. Community Nodes option cause the n8n container to crash with this result which forced me to delete the whole folder in C:\Docker\n8n-data-dwd\nodes which manage to get it to work again:
linux is NOT supported.
Last session crashed
Initializing n8n process
linux is NOT supported.
Last session crashed
Initializing n8n process
linux is NOT supported.
Last session crashed
I tried manual installation but don’t know where is the installation directory so I tried find it in the container Bind mounts and cd to it.
It successfully pull a new node_modules folder into the above folder and restart but I can’t get it to work, can’t find it in the n8n workflow.
Information on your n8n setup
- n8n version: 2.1.4
- Docker version:
-
Client: Version: 29.1.3 API version: 1.52 Go version: go1.25.5 Git commit: f52814d Built: Fri Dec 12 14:51:52 2025 OS/Arch: windows/amd64 Context: desktop-linux Server: Docker Desktop 4.55.0 (213807) Engine: Version: 29.1.3 API version: 1.52 (minimum version 1.44) Go version: go1.25.5 Git commit: fbf3ed2 Built: Fri Dec 12 14:49:51 2025 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.0 GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41 runc: Version: 1.3.4 GitCommit: v1.3.4-0-gd6d73eb8 docker-init: Version: 0.19.0 GitCommit: de40ad0
-
- Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
- Operating system: Windows

