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