Push an image to a registry
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-30 16:46:30 +02:00
action.yaml ci: add conditional container tools installation step 2026-08-30 16:41:34 +02:00
README.md ci: update default inputs to empty and switch push command to docker 2026-08-30 14:19:30 +02:00

L'action push-image

Cette action permet de pousser une image Docker dans un registre à l'aide des outils docker, podman ou skopeo.
Elle est conçue pour être utilisée dans des workflows Gitea avec des runners auto-hébergés.


🔧 Utilisation

- name: Build and push Docker image
  uses: https://gargoton.petite-maison-orange.fr/pmo-actions/push-image@main
  with:
    image_name: my_image
    image_tags: latest stable

📥 Paramètres

Nom Obligatoire Par défaut Description
image_name ✅ – Nom de l'image à pousser.
image_tags ✅ – Liste des tags à ajouter à l'image avant de la pousser.
registry_login ❌ false Indique si l'action doit se connecter au registre avant de pousser l'image.
registry_user ❌ (vide) Utilisateur pour se connecter au registre — voir note ci-dessous.
registry_password ❌ (vide) Mot de passe pour se connecter au registre — voir note ci-dessous.
registry_server ❌ niepce.petite-maison-orange.fr Adresse du serveur du registre d'images Docker.
push_command ❌ docker Commande à utiliser pour pousser l'image (docker, podman ou skopeo).
debug ❌ false Mode débogage. Si activé, affiche des informations détaillées pendant l'exécution.

Note : push-image est une action composite (runs.using: composite), qui n'a jamais accès au contexte secrets. registry_user et registry_password doivent donc être passés explicitement en with: par le workflow appelant (${{ secrets.PMO_REGISTRY_USER }} / ${{ secrets.PMO_REGISTRY_PASSWORD }}, ou tout autre secret configuré côté appelant).


▶️ Exemples de workflow

Avec Docker

- name: Push Docker image
  uses: https://gargoton.petite-maison-orange.fr/pmo-actions/push-image@main
  with:
    image_name: my_image
    image_tags: latest stable
    registry_login: true
    registry_user: ${{ secrets.PMO_REGISTRY_USER }}
    registry_password: ${{ secrets.PMO_REGISTRY_PASSWORD }}
    registry_server: niepce.petite-maison-orange.fr
    push_command: docker
    debug: true

Avec Skopeo

- name: Push Docker image with Skopeo
  uses: https://gargoton.petite-maison-orange.fr/pmo-actions/push-image@main
  with:
    image_name: public/pmomusic
    image_tags: latest v1.0.0
    registry_login: true
    registry_user: ${{ secrets.PMO_REGISTRY_USER }}
    registry_password: ${{ secrets.PMO_REGISTRY_PASSWORD }}
    push_command: skopeo

⚙️ Comportement

  • Si l'option registry_login est activée, l'action se connecte au registre avant de pousser l'image.
  • Si la commande push_command échoue, l'action renvoie une erreur.
  • L'image est poussée sous chaque tag spécifié dans le paramètre image_tags.
  • Si debug est activé, des informations détaillées sont affichées pendant le processus.

Différences entre les commandes

  • docker et podman : Utilisent la syntaxe classique push <registry>/<image>:<tag>
  • skopeo : Utilise la syntaxe copy docker-daemon:<image> docker://<registry>/<image> pour copier l'image depuis le daemon local vers le registre distant

🧡 À propos

Cette action fait partie des actions de la Petite Maison Orange.
Toutes les actions sont disponibles ici :
👉 https://gargoton.petite-maison-orange.fr/pmo-actions/