This is an issue that many of us have run into recently especially if you rely on tools like ffmpeg or use custom images in general,
So far, the easiest solution is to restore apk without hard-coding URLs , as discussed here:
opened 04:40PM - 15 Dec 25 UTC
closed 08:22PM - 15 Dec 25 UTC
Needs Feedback
triage:pending
status:in-linear
### Bug Description
In release 2.1.0 the alpine image is missing the apk instal… ler.
Release 2.0.2 works fine.
2025-Dec-15 16:26:12.153682
#4 [1/2] FROM docker.io/n8nio/n8n:2.1.0@sha256:18956052765072b4ec06decbe39e72e792a6056f67a06dfa88969f4a6772fe83
2025-Dec-15 16:26:12.153682
#4 CACHED
2025-Dec-15 16:26:12.153682
2025-Dec-15 16:26:12.153682
#5 [2/2] RUN apk add --no-cache ffmpeg
2025-Dec-15 16:26:12.153682
#5 0.098 /bin/sh: apk: not found
2025-Dec-15 16:26:12.231964
#5 ERROR: process "/bin/sh -c apk add --no-cache ffmpeg" did not complete successfully: exit code: 127
2025-Dec-15 16:26:12.231964
------
2025-Dec-15 16:26:12.231964
> [2/2] RUN apk add --no-cache ffmpeg:
2025-Dec-15 16:26:12.231964
0.098 /bin/sh: apk: not found
2025-Dec-15 16:26:12.231964
------
2025-Dec-15 16:26:12.237013
1 warning found (use docker --debug to expand):
2025-Dec-15 16:26:12.237013
- SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "DB_POSTGRESDB_PASSWORD") (line 4)
2025-Dec-15 16:26:12.241614
Dockerfile:23
2025-Dec-15 16:26:12.241614
--------------------
2025-Dec-15 16:26:12.241614
21 | ARG WEBHOOK_URL=https://n8n2.signohost.com/
2025-Dec-15 16:26:12.241614
22 | USER root
2025-Dec-15 16:26:12.241614
23 | >>> RUN apk add --no-cache ffmpeg
2025-Dec-15 16:26:12.241614
24 | USER node
2025-Dec-15 16:26:12.241614
--------------------
2025-Dec-15 16:26:12.241614
ERROR: failed to build: failed to solve: process "/bin/sh -c apk add --no-cache ffmpeg" did not complete successfully: exit code: 127
2025-Dec-15 16:26:12.248125
exit status 1
2025-Dec-15 16:26:12.402779
========================================
2025-Dec-15 16:26:12.421916
Deployment failed: Command execution failed (exit code 1): docker exec is4k480ogco4k0s0oowkcogo bash -c 'bash /artifacts/build.sh'
2025-Dec-15 16:26:12.421916
Error: #0 building with "default" instance using docker driver
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
#1 [internal] load build definition from Dockerfile
2025-Dec-15 16:26:12.421916
#1 transferring dockerfile: 879B done
2025-Dec-15 16:26:12.421916
#1 DONE 0.0s
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
#2 [internal] load metadata for docker.io/n8nio/n8n:2.1.0
2025-Dec-15 16:26:12.421916
#2 DONE 0.4s
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
#3 [internal] load .dockerignore
2025-Dec-15 16:26:12.421916
#3 transferring context: 2B done
2025-Dec-15 16:26:12.421916
#3 DONE 0.0s
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
#4 [1/2] FROM docker.io/n8nio/n8n:2.1.0@sha256:18956052765072b4ec06decbe39e72e792a6056f67a06dfa88969f4a6772fe83
2025-Dec-15 16:26:12.421916
#4 CACHED
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
#5 [2/2] RUN apk add --no-cache ffmpeg
2025-Dec-15 16:26:12.421916
#5 0.098 /bin/sh: apk: not found
2025-Dec-15 16:26:12.421916
#5 ERROR: process "/bin/sh -c apk add --no-cache ffmpeg" did not complete successfully: exit code: 127
2025-Dec-15 16:26:12.421916
------
2025-Dec-15 16:26:12.421916
> [2/2] RUN apk add --no-cache ffmpeg:
2025-Dec-15 16:26:12.421916
0.098 /bin/sh: apk: not found
2025-Dec-15 16:26:12.421916
------
2025-Dec-15 16:26:12.421916
2025-Dec-15 16:26:12.421916
1 warning found (use docker --debug to expand):
2025-Dec-15 16:26:12.421916
- SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "DB_POSTGRESDB_PASSWORD") (line 4)
2025-Dec-15 16:26:12.421916
Dockerfile:23
2025-Dec-15 16:26:12.421916
--------------------
2025-Dec-15 16:26:12.421916
21 | ARG WEBHOOK_URL=https://n8n2.signohost.com/
2025-Dec-15 16:26:12.421916
22 | USER root
2025-Dec-15 16:26:12.421916
23 | >>> RUN apk add --no-cache ffmpeg
2025-Dec-15 16:26:12.421916
24 | USER node
2025-Dec-15 16:26:12.421916
--------------------
2025-Dec-15 16:26:12.421916
ERROR: failed to build: failed to solve: process "/bin/sh -c apk add --no-cache ffmpeg" did not complete successfully: exit code: 127
2025-Dec-15 16:26:12.421916
exit status 1
2025-Dec-15 16:26:12.445246
Error type: RuntimeException
2025-Dec-15 16:26:12.472715
Error code: 0
2025-Dec-15 16:26:12.491003
Location: /var/www/html/app/Traits/ExecuteRemoteCommand.php:237
2025-Dec-15 16:26:12.521601
Stack trace (first 5 lines):
2025-Dec-15 16:26:12.539158
#0 /var/www/html/app/Traits/ExecuteRemoteCommand.php(104): App\Jobs\ApplicationDeploymentJob->executeCommandWithProcess()
2025-Dec-15 16:26:12.550480
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(271): App\Jobs\ApplicationDeploymentJob->{closure:App\Traits\ExecuteRemoteCommand::execute_remote_command():71}()
2025-Dec-15 16:26:12.564235
#2 /var/www/html/app/Traits/ExecuteRemoteCommand.php(71): Illuminate\Support\Collection->each()
2025-Dec-15 16:26:12.581146
#3 /var/www/html/app/Jobs/ApplicationDeploymentJob.php(2961): App\Jobs\ApplicationDeploymentJob->execute_remote_command()
2025-Dec-15 16:26:12.595853
#4 /var/www/html/app/Jobs/ApplicationDeploymentJob.php(521): App\Jobs\ApplicationDeploymentJob->build_image()
2025-Dec-15 16:26:12.615195
========================================
2025-Dec-15 16:26:12.625726
Deployment failed. Removing the new version of your application.
2025-Dec-15 16:26:13.583354
Gracefully shutting down build container: is4k480ogco4k0s0oowkcogo
### To Reproduce
Try to build a new image with this docker file
FROM n8nio/n8n:2.1.0
USER root
RUN apk add --no-cache ffmpeg
USER node
### Expected behavior
Should build a new n8n image with ffmpeg included.
### Debug Info
No need for this info. Happens during docker build.
### Operating System
Ubuntu linux 24.04
### n8n Version
2.1.0
### Node.js Version
22.16.0
### Database
PostgreSQL
### Execution mode
main (default)
### Hosting
self hosted
FROM alpine:latest AS alpine
FROM n8nio/n8n:latest
# Copy apk and its deps from Alpine
COPY --from=alpine /sbin/apk /sbin/apk
COPY --from=alpine /usr/lib/libapk.so* /usr/lib/
USER root
RUN apk add --no-cache ffmpeg
USER node
This solution is for the main n8n instance, but you can also tweak it to apply only to runners..
Hopefully, n8n will address this properly soon by providing alternative image tags..