Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building a Dockerimage that uses FROM gcr.io/kaniko-project/executor fails #1131

Closed
nilathedragon opened this issue Mar 12, 2020 · 3 comments

Comments

@nilathedragon
Copy link

Actual behavior
Im building a Dockerimage which FROM's from the gcr.io/kaniko-project/executor image with a custom name like this

FROM gcr.io/kaniko-project/executor as docker-runtime
FROM scratch

COPY --from=docker-runtime /kaniko /kaniko

This results in a failing build:

INFO[0000] Resolved base name gcr.io/kaniko-project/executor to gcr.io/kaniko-project/executor 
INFO[0000] Resolved base name scratch to scratch        
INFO[0000] Resolved base name gcr.io/kaniko-project/executor to gcr.io/kaniko-project/executor 
INFO[0000] Resolved base name scratch to scratch        
INFO[0000] Retrieving image manifest gcr.io/kaniko-project/executor 
INFO[0000] Retrieving image manifest gcr.io/kaniko-project/executor 
INFO[0001] Built cross stage deps: map[0:[/kaniko]]     
INFO[0001] Retrieving image manifest gcr.io/kaniko-project/executor 
INFO[0002] Retrieving image manifest gcr.io/kaniko-project/executor 
INFO[0008] Taking snapshot of full filesystem...        
INFO[0008] Resolving paths                              
INFO[0008] Saving file /kaniko for later use            
error building image: open /kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/0/kaniko/.config/gcloud/docker_credential_gcr_config.json: file name too long

Expected behavior
Im building a Dockerimage which FROM's from the gcr.io/kaniko-project/executor image with a custom name like this

FROM gcr.io/kaniko-project/executor as docker-runtime
FROM scratch

COPY --from=docker-runtime /kaniko /kaniko

And I get a scratch image with the kaniko folder in it.

To Reproduce

  1. Create a Dockerfile with the provided snippet above
  2. Mount some GCR credentials or create a file containing them next to the Dockerfile
  3. docker run -it --rm -e GOOGLE_APPLICATION_CREDENTIALS= -v :/home/test gcr.io/kaniko-project/executor --context /home/test --dockerfile Dockerfile --destination test --no-push

Additional Information

  • Dockerfile
FROM gcr.io/kaniko-project/executor as docker-runtime
FROM scratch

COPY --from=docker-runtime /kaniko /kaniko

The Build succeeds when I am not using the AS directive.

FROM scratch

COPY --from=gcr.io/kaniko-project/executor /kaniko /kaniko

Triage Notes for the Maintainers

Description Yes/No
Please check if this a new feature you are proposing
Please check if the build works in docker but not in kaniko
Please check if this error is seen when you use --cache flag
Please check if your dockerfile is a multistage dockerfile
@tejal29
Copy link
Member

tejal29 commented Mar 12, 2020

@Infinytum this could be fixed on latest master. i will verify this.
Also note, we have not tested behavior of building a image using kaniko built from kaniko image.

@nilathedragon
Copy link
Author

I can tell you, without using the AS directive the image build works like a charm and my custom image works too. So its just an issue while using AS.

Yeah this is probably an edge case, but as it still shouldn't happen its probably better to report :)

@tejal29
Copy link
Member

tejal29 commented Mar 18, 2020

@Infinytum can you please not copy the whole /kaniko dir and only the files you are interested in.
/kaniko is special and we end up saving files which we need for multistage builds in kaniko/{stg_idx}

When we copy /kaniko into /kaniko/idx the copy command recursively keeps copying it which is why you see the above error.

Please explicitly copy the executor or any other config like /kaniko/.docker or /kaniko/.cloud explicitly.

/ # ls -al kaniko/
total 129220
drwxr-xr-x    1 0        0             4096 Mar 18 00:13 .
drwxr-xr-x    1 0        0             4096 Mar 18 00:14 ..
drwxr-xr-x    3 0        0             4096 Mar 18 00:09 .config
drwxr-xr-x    2 0        0             4096 Mar 18 00:08 .docker
drw-r--r--    3 0        0             4096 Mar 18 00:13 0
-rw-------    1 0        0         42179072 Mar 18 00:13 220102453
-rw-r-----    1 407936   89939          119 Mar 18 00:13 Dockerfile
-rwxr-xr-x    1 0        0          8531071 Aug 15  2017 docker-credential-acr
-rwxr-xr-x    1 0        0          8470528 Mar 18 00:07 docker-credential-ecr-login
-rwxr-x---    1 205001   89939      5147454 Jun 13  2018 docker-credential-gcr
-rwxr-xr-x    1 0        0         42176512 Mar 18 00:13 executor
drwxr-xr-x    3 0        0             4096 Mar 18 00:08 ssl
-rwxr-xr-x    1 0        0         25780224 Mar 18 00:08 warmer

Thank you!
Tejal

@tejal29 tejal29 closed this as completed Mar 18, 2020
@tejal29 tejal29 added the wontfix This will not be worked on label Mar 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants