This is what I have right now (Note: Using Buildkit):
A runtime
target as the base of the final image
A build
target in Dockerfile that runs ./gradlew build
which of course runs tests
A test-report
target based on scratch
that copies the results from the build
target
And a final target that copies from build
into runtime
I first run the test-report
target with --output
to actually trigger the build and extract test results
Then build the final target image
The problem is that something inconsistently bursts the cache and it builds twice.
Is there a better way to do this?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…