Share built image between jobs with GitHub Actions
Comme chaque tâche est isolée dans son propre runner, vous ne pouvez pas utiliser votre image construite entre les tâches, sauf si vous utilisez des runners auto-hébergés ou Docker Build Cloud. Cependant, vous pouvez passer des données entre tâches dans un workflow en utilisant les actions actions/upload-artifact et actions/download-artifact :
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