-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Caching problem with multistage build #1706
Comments
Possibly related to #589 (comment) , try with kaniko v1.3.0 as it appears that a regression has happened. |
I was having a similar issue building docker images with Gitlab CI. Downgrading kaniko to v1.3.0 solved the problem. |
I also faced this issue and downgraded to v1.3.0 worked. |
gilbsgilbs
added a commit
to gilbsgilbs/kaniko
that referenced
this issue
Sep 9, 2021
…Tools#1706) PR GoogleContainerTools#1518 reintroduced COPY layers caching using the `--cache-copy-layers` flag. Unfortunately, this PR also introduced a bug by not including the stage digest into the caching key of the COPY command when the `--cache-copy-layers` flag was not set. As a result, kaniko would use any previous (possibly stalled) layer from the cache because the digest of the "COPY --from" command would never change. PR author probably expected Go to fallthrough in the switch just like C does. However, this is not the case. Go does not fallthrough in switch-statements by default and requires the fallthrough keyword to be used. Note that this keyword is not available in type-switches though, because it wouldn't work properly with typings.
4 tasks
FYI, I opened #1735 which should fix this issue if anybody wants to give a look. |
gilbsgilbs
added a commit
to gilbsgilbs/kaniko
that referenced
this issue
Sep 9, 2021
…Tools#1706) PR GoogleContainerTools#1518 reintroduced COPY layers caching using the `--cache-copy-layers` flag. Unfortunately, this PR also introduced a bug by not including the stage digest into the caching key of the COPY command when the `--cache-copy-layers` flag was not set. As a result, kaniko would use any previous (possibly stalled) layer from the cache because the digest of the "COPY --from" command would never change. PR author probably expected Go to fallthrough in the switch just like C does. However, this is not the case. Go does not fallthrough in switch-statements by default and requires the fallthrough keyword to be used. Note that this keyword is not available in type-switches though, because it wouldn't work properly with typings.
tejal29
pushed a commit
to gilbsgilbs/kaniko
that referenced
this issue
Oct 19, 2021
…Tools#1706) PR GoogleContainerTools#1518 reintroduced COPY layers caching using the `--cache-copy-layers` flag. Unfortunately, this PR also introduced a bug by not including the stage digest into the caching key of the COPY command when the `--cache-copy-layers` flag was not set. As a result, kaniko would use any previous (possibly stalled) layer from the cache because the digest of the "COPY --from" command would never change. PR author probably expected Go to fallthrough in the switch just like C does. However, this is not the case. Go does not fallthrough in switch-statements by default and requires the fallthrough keyword to be used. Note that this keyword is not available in type-switches though, because it wouldn't work properly with typings.
tejal29
added a commit
that referenced
this issue
Oct 19, 2021
* chore: add workflows for pr tests * fix unit tests * fix formatting * chore: fix gobuild * change minikube script * chore: fix lint install script * chore: ignore and fix tests * fix lint and run gofmt * lint fixes * k8s executor image only * fix Makefile * fix travis env variables * more info on k8s tests * fix travis run * fix * fix * fix * fix log * some more changes * increase timeout * delete travis.yml and fix multiple copy tests * fix registry mirror * fix lint * add concurency * last attemot to fix k8 integrations * diff id for diff workflows * Fix composite cache key for multi-stage copy command (#1706) PR #1518 reintroduced COPY layers caching using the `--cache-copy-layers` flag. Unfortunately, this PR also introduced a bug by not including the stage digest into the caching key of the COPY command when the `--cache-copy-layers` flag was not set. As a result, kaniko would use any previous (possibly stalled) layer from the cache because the digest of the "COPY --from" command would never change. PR author probably expected Go to fallthrough in the switch just like C does. However, this is not the case. Go does not fallthrough in switch-statements by default and requires the fallthrough keyword to be used. Note that this keyword is not available in type-switches though, because it wouldn't work properly with typings. * refactor: add an abstract copy command interface to avoid code duplication * fix typo in error message Co-authored-by: Tejal Desai <tejal29@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Actual behavior
I have a problem with a docker image containing a python cli script. While tracking down the problem I found that kaniko inappropriately uses a cached version of the RUN command which is responsible for installing the cli tool which is build in a prior stage of the multistage Dockerfile.
The last line of this Dockerfile ist cached by kaniko, so in the resulting image I always have the old cli tool version. Here ist the gitlab-ci job which I use to build the image with kaniko (version gcr.io/kaniko-project/executor:v1.6.0-debug):
Here is a snippet of the kaniko log output which also states that a cached version is used:
Triage Notes for the Maintainers
--cache
flagThe text was updated successfully, but these errors were encountered: