You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Actual behavior When building an image with Kaniko that copies files into /tmp, the permissions on /tmp get changed from drwxrwxrwt (1777) to drwxrwxr-x (0775) (the sticky bit is lost). As a result, running apt-get update fails with:
Couldn't create temporary file /tmp/apt.conf.xxxxx for passing config to apt-key...The repository ... is not signed.
In contrast, the same Dockerfile works as expected with docker build, and /tmp retains the sticky bit.
Expected behavior Kaniko should preserve the sticky bit on /tmp so that apt-get commands (and other processes that rely on /tmp being 1777) do not fail. The build should succeed similarly to how it does with Docker.
To Reproduce
Create a minimal Dockerfile (example below) that copies a folder into /tmp and then runs apt-get update.
Observe that apt-get update fails with an error about creating temporary files in /tmp.
Additional Information
Dockerfile (simplified example reproducing the issue):
FROM public.ecr.aws/lts/ubuntu:20.04_stable
# Copy files into /tmp
COPY lib/. /tmp/
# Now apt-get update will fail due to lost sticky bit on /tmp
RUN apt-get update && apt-get install -y curl
Build Context
The lib directory contains arbitrary files (empty files/folders is enough to reproduce). The presence of that copy to /tmp is what changes the directory’s permissions.
Kaniko Image (fully qualified with digest)
gcr.io/kaniko-project/executor:latest
(Also tested with other Kaniko versions. Same result.)
Triage Notes for the Maintainers
Description Yes/No
Please check if this is a new feature you are proposing - [ ]
Please check if the build works in docker but not in kaniko - [x]
Please check if this error is seen when you use --cache flag - [ ]
Please check if your dockerfile is a multistage dockerfile - [ ]
The same Dockerfile works fine with docker build.
With Kaniko, /tmp is changed to drwxrwxr-x (0775), losing the sticky bit, which breaks apt-get.
This issue persists even if you do RUN chmod 1777 /tmp in a prior layer, because the subsequent COPY seems to overwrite permissions.
The text was updated successfully, but these errors were encountered:
Actual behavior When building an image with Kaniko that copies files into /tmp, the permissions on /tmp get changed from drwxrwxrwt (1777) to drwxrwxr-x (0775) (the sticky bit is lost). As a result, running apt-get update fails with:
In contrast, the same Dockerfile works as expected with docker build, and /tmp retains the sticky bit.
Expected behavior Kaniko should preserve the sticky bit on /tmp so that apt-get commands (and other processes that rely on /tmp being 1777) do not fail. The build should succeed similarly to how it does with Docker.
To Reproduce
docker run --rm -it \ -v "$PWD":/workspace \ -w /workspace \ gcr.io/kaniko-project/executor:latest \ --dockerfile Dockerfile \ --context dir:///workspace \ --destination localhost:5000/test:latest
Additional Information
Build Context
The lib directory contains arbitrary files (empty files/folders is enough to reproduce). The presence of that copy to /tmp is what changes the directory’s permissions.
Kaniko Image (fully qualified with digest)
gcr.io/kaniko-project/executor:latest
(Also tested with other Kaniko versions. Same result.)
Triage Notes for the Maintainers
Description Yes/No
Please check if this is a new feature you are proposing - [ ]
Please check if the build works in docker but not in kaniko - [x]
Please check if this error is seen when you use --cache flag - [ ]
Please check if your dockerfile is a multistage dockerfile - [ ]
The same Dockerfile works fine with docker build.
With Kaniko, /tmp is changed to drwxrwxr-x (0775), losing the sticky bit, which breaks apt-get.
This issue persists even if you do RUN chmod 1777 /tmp in a prior layer, because the subsequent COPY seems to overwrite permissions.
The text was updated successfully, but these errors were encountered: