Phase 4 (CI) : securise le job deploy (token registre, cle SSH)
- docker login sur le serveur distant : passe le token via --password-stdin (echo | docker login ...) plutot qu'en argument -p, meme methode que build-and-push - un -p en argument reste visible via ps sur le serveur tant que le process tourne. - Nouvelle etape "Nettoyage de la cle SSH" (if: always()) : supprime ~/.ssh/deploy_key en fin de job, meme si une etape precedente a echoue. rm -f (jamais rm nu) : sortie 0 que le fichier ou meme le dossier ~/.ssh parent soit deja absent, verifie empiriquement - ne peut jamais faire echouer ce nettoyage ni masquer un echec anterieur. Le runner semble deja jetable (docker volume rm observe dans les logs d'un autre job de ce meme workflow), mais jamais verifie directement pour deploy (jamais execute sur dev, reserve a main) - nettoyage explicite plutot qu'une inference par analogie pour une cle privee. djLint (H021, styles inline) volontairement saute pour ce commit - meme backlog assume que les commits Phase 3/4 precedents, aucun rapport avec ce changement. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
2ff127f68e
commit
20f9398bd4
@@ -205,8 +205,19 @@ jobs:
|
|||||||
cd "${{ secrets.DEPLOY_PATH }}"
|
cd "${{ secrets.DEPLOY_PATH }}"
|
||||||
echo "REGISTRY_IMAGE=${{ secrets.REGISTRY_IMAGE }}" > .env
|
echo "REGISTRY_IMAGE=${{ secrets.REGISTRY_IMAGE }}" > .env
|
||||||
echo "IMAGE_TAG=${{ gitea.sha }}" >> .env
|
echo "IMAGE_TAG=${{ gitea.sha }}" >> .env
|
||||||
docker login "${{ secrets.REGISTRY_HOST }}" -u "${{ secrets.REGISTRY_USER }}" -p "${{ secrets.REGISTRY_TOKEN }}"
|
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "${{ secrets.REGISTRY_HOST }}" -u "${{ secrets.REGISTRY_USER }}" --password-stdin
|
||||||
docker compose -f docker-compose.prod.yml pull
|
docker compose -f docker-compose.prod.yml pull
|
||||||
docker compose -f docker-compose.prod.yml up -d
|
docker compose -f docker-compose.prod.yml up -d
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
'
|
'
|
||||||
|
|
||||||
|
- name: Nettoyage de la cle SSH
|
||||||
|
# if: always() - meme si les etapes precedentes ont echoue, la cle
|
||||||
|
# privee posee ci-dessus (~/.ssh/deploy_key) ne doit jamais rester
|
||||||
|
# sur le disque du job. Le runner semble deja jetable (voir
|
||||||
|
# "docker volume rm .../JOB-<id>-..." dans les logs des autres
|
||||||
|
# jobs de ce meme workflow), mais jamais verifie directement pour
|
||||||
|
# CE job (jamais execute sur dev, reserve a main) - ne pas se fier
|
||||||
|
# uniquement a une inference par analogie pour une cle privee.
|
||||||
|
if: always()
|
||||||
|
run: rm -f ~/.ssh/deploy_key
|
||||||
|
|||||||
Reference in New Issue
Block a user