Aller au contenu

Registre prive Artifactory

Page optionnelle

Cette page concerne uniquement les environnements avec un registre prive (Artifactory, Nexus, Harbor, etc.). Si vous utilisez uniquement Docker Hub, passez au déploiement.

Configurer Podman pour tirer des images depuis un registre prive d'entreprise. Chaque section est indépendante — prenez ce dont vous avez besoin.


Authentification

Credentials interactifs

podman login artifactory.example.com

Podman demande le nom d'utilisateur et le mot de passe, puis stocke les credentials dans ~/.local/share/containers/auth.json.

Token ou API key

Pour les pipelines CI/CD ou les scripts non interactifs :

podman login -u <user> -p <api_key> artifactory.example.com

Emplacement des credentials

Les credentials sont stockes dans ~/.local/share/containers/auth.json (mode rootless) ou /run/containers/0/auth.json. Ce fichier est au format JSON compatible Docker.


Certificats auto-signes

Si votre registre utilise un certificat auto-signe ou une CA interne :

sudo mkdir -p /etc/containers/certs.d/artifactory.example.com
sudo cp ca.crt /etc/containers/certs.d/artifactory.example.com/ca.crt

Podman cherche automatiquement les certificats dans /etc/containers/certs.d/<registry>/.


Désactiver la vérification TLS

Développement uniquement

Ne desactivez jamais la vérification TLS en production. Cette option expose vos credentials et vos images a des attaques man-in-the-middle.

Pour un registre de développement sans certificat valide :

sudo tee /etc/containers/registries.conf.d/artifactory.conf > /dev/null << 'EOF'
[[registry]]
location = "artifactory.example.com"
insecure = true
EOF

Registre de recherche

Pour pouvoir écrire monapp:latest au lieu de artifactory.example.com/docker-local/monapp:latest :

sudo sed -i "s/^unqualified-search-registries.*/unqualified-search-registries = [\"artifactory.example.com\", \"docker.io\"]/" \
  /etc/containers/registries.conf

L'ordre compte : Podman cherche d'abord dans le premier registre, puis dans les suivants.


Mirror Docker Hub

Si Artifactory sert de proxy-cache pour Docker Hub (utile pour éviter les rate limits et accélérer les pulls) :

sudo tee /etc/containers/registries.conf.d/artifactory-mirror.conf > /dev/null << 'EOF'
[[registry]]
location = "docker.io"

[[registry.mirror]]
location = "artifactory.example.com/docker-remote"
EOF

Avec cette configuration, podman pull nginx:alpine passe par Artifactory. Si l'image est en cache, le pull est quasi instantané. Sinon, Artifactory la téléchargé depuis Docker Hub et la met en cache pour les prochains pulls.

Vous etes pret pour le déploiement.