Open FezVrasta opened 2 months ago
but subsequent builds are not taking advantage of the layers cache even though nothing in the repository changed at all.
I don't see any use of cache exporters in your workflow. You can use the gha exporter for example:
- name: Build and Push Docker Images
uses: docker/bake-action@v5
env:
TAG: ${{ steps.release-tag.outputs.tag }}
with:
source: "."
files: "compose.yaml"
workdir: "./docker"
push: ${{ env.dryRun == 'false' }}
load: true
set:
*.cache-from=type=gha
*.cache-to=type=gha,mode=max
More info: https://docs.docker.com/build/ci/github-actions/cache/
Thanks, that helped, but still I see only ~60% caching on runs where nothing in the repository changed at all 🤔
Would need to look at your Dockerfile and build logs to figure out if this related to context changes (maybe .git
folder).
Can you share your .dockerbuild
file from the summary?
Thanks for the help, this is my Dockerfile and this the .dockerbuild: dockerbuild.zip
Personally I don't see anything that could result in cache invalidation.
Edit: I even tried to just re-run the same build and I obtained the same results.
Seems cache is busted at COPY --parents
instruction:
Wonder if this is a bug with new --parents
flag :thinking:
Can you try without --parents
if possible?
Can you also change this step:
# This gives us access to buildx
- name: Set up Docker CLI
uses: docker/setup-buildx-action@v3
to
# This gives us access to buildx
- name: Set up Docker CLI
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
And post the BuildKit logs from post step: https://docs.docker.com/build/ci/github-actions/configure-builder/#buildkit-container-logs
Thanks, I removed the --parents
and replaced it with several COPY commands one for each file.
This is the buildkit log: https://gist.github.com/FezVrasta/6d0c2024eb1bbfcbd4c37112136ea58d
This the dockerbuild: dockerbuild2.zip
I still see low cache percentage.
Hi!
We are observing issues with the cache as well. For identical contents, sometimes the build simply doesn't use the cache.
These two builds:
differ by https://github.com/cnpem/epics-in-docker/commit/635b6d0eeda04f3516252b383ee4a777a6692ea3, and that Dockerfile
is not copied into the build at any point.
Contributing guidelines
I've found a bug, and:
Description
I'm trying to use this action to build a multi stage image using a docker compose configuration file. The build is working correctly and the images are pushed to the Google Artifacts registry just fine, but subsequent builds are not taking advantage of the layers cache even though nothing in the repository changed at all.
Expected behaviour
I would expect this to be way higher than 0%
Actual behaviour
Cache seem not to be used at all?
Repository URL
No response
Workflow run URL
No response
YAML workflow
Workflow logs
No response
BuildKit logs
No response
Additional info
No response