Skip to content

Commit 05f9865

Browse files
authored
Docker image build caching improvements (#279)
* try to reuse the cache from upstream if possible
1 parent 8ad5f1d commit 05f9865

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"no_proxy": "${localEnv:no_proxy}",
1313
"--tag": "benchbase-dev:latest"
1414
},
15-
"cacheFrom": "benchbase.azurecr.io/benchbase-dev"
15+
"cacheFrom": "benchbase.azurecr.io/benchbase-dev:latest"
1616
},
1717
"initializeCommand": [
1818
".devcontainer/scripts/initializeCommand"

.github/workflows/maven.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,15 @@ jobs:
415415
key: setup-java-${{ runner.os }}-docker-maven-${{ hashFiles('**/pom.xml') }}
416416
restore-keys: |
417417
setup-java-${{ runner.os }}-docker-maven-
418+
- name: Pull base image caches for PR builds
419+
if: ${{ github.ref != 'refs/heads/main' }}
420+
run: |
421+
docker pull benchbase.azurecr.io/benchbase-dev:latest || true
422+
docker pull benchbase.azurecr.io/benchbase:latest || true
423+
- name: Set NO_CACHE env var for main branch builds
424+
if: ${{ github.ref == 'refs/heads/main' }}
425+
run: |
426+
echo "NO_CACHE=true" >> $GITHUB_ENV
418427
- name: Build benchbase-dev image
419428
run: |
420429
./docker/benchbase/build-dev-image.sh

docker/benchbase/common-env.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,10 @@ if [ "$DOCKER_BUILDKIT" == 1 ]; then
8383
docker_build_args='--progress=plain'
8484
fi
8585
export DOCKER_BUILDKIT
86+
87+
if [ "${NO_CACHE:-false}" == 'true' ]; then
88+
docker_build_args+=' --pull --no-cache'
89+
else
90+
upstream_image="benchbase.azurecr.io/$imagename:latest"
91+
docker_build_args+=" --cache-from=$upstream_image"
92+
fi

0 commit comments

Comments
 (0)