Share built image between jobs with GitHub Actions


As each job is isolated in its own runner, you can't use your built image between jobs, except if you're using self-hosted runners or Docker Build Cloud. However, you can pass data between jobs in a workflow using the actions/upload-artifact and actions/download-artifact actions:

name: ci  on:   push:  jobs:   build:     runs-on: ubuntu-latest     steps:       - name: Set up Docker Buildx         uses: docker/setup-buildx-action@v3        - name: Build and export         uses: docker/build-push-action@v6         with:           tags: myimage:latest           outputs: type=docker,dest=${{ runner.temp }}/myimage.tar        - name: Upload artifact         uses: actions/upload-artifact@v4         with:           name: myimage           path: ${{ runner.temp }}/myimage.tar    use:     runs-on: ubuntu-latest     needs: build     steps:       - name: Download artifact         uses: actions/download-artifact@v4         with:           name: myimage           path: ${{ runner.temp }}        - name: Load image         run: |           docker load --input ${{ runner.temp }}/myimage.tar           docker image ls -a