refactor: convention COMPOSE_PROJECT_NAME user-project-branch + labels Registrator
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

- Convention renommée user-project-branch (syoul-prestashop-main)
- COMPOSE_PROJECT_NAME généré dynamiquement depuis CI vars (CI_REPO_OWNER/CI_REPO_NAME/CI_COMMIT_BRANCH) avec tr pour lowercase + /→-
- SERVICE_NAME → ${COMPOSE_PROJECT_NAME}-app
- SERVICE_80_NAME → ${COMPOSE_PROJECT_NAME}-app-80

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-03-17 23:50:57 +01:00
parent 1d0d0e1143
commit 1ef176c2e0
2 changed files with 9 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ steps:
PRESTASHOP_ADMIN_PASSWORD: placeholder
commands:
- |
export COMPOSE_PROJECT_NAME="$CI_REPO_OWNER-$CI_COMMIT_BRANCH-prestashop"
export COMPOSE_PROJECT_NAME=$(printf '%s-%s-%s' "$CI_REPO_OWNER" "$CI_REPO_NAME" "$CI_COMMIT_BRANCH" | tr 'A-Z/' 'a-z-')
export PS_DOMAIN="validate.example.com"
export PS_ADMIN_FOLDER="admin-secure"
docker compose config --quiet
@@ -54,9 +54,8 @@ steps:
from_secret: db_password
commands:
- env | grep -E "^(PS_DOMAIN|PS_ADMIN_FOLDER|PRESTASHOP_ADMIN_EMAIL|PRESTASHOP_ADMIN_PASSWORD|DB_ROOT_PASSWORD|DB_PASSWORD)=" > .env.deploy
# COMPOSE_PROJECT_NAME : convention user-env-project, valeur fixe pour ce depot
# Les vars CI ne sont pas disponibles comme vars shell dans les steps sans Docker socket
- echo "COMPOSE_PROJECT_NAME=syoul-main-prestashop" >> .env.deploy
# COMPOSE_PROJECT_NAME : convention user-project-branch, genere depuis les vars CI
- OWNER=$(echo "$CI_REPO_OWNER" | tr 'A-Z' 'a-z') && REPO=$(echo "$CI_REPO_NAME" | tr 'A-Z' 'a-z') && BRANCH=$(echo "$CI_COMMIT_BRANCH" | tr 'A-Z/' 'a-z-') && echo "COMPOSE_PROJECT_NAME=$OWNER-$REPO-$BRANCH" >> .env.deploy
- echo "Fichier .env.deploy cree ($(wc -c < .env.deploy) octets)"
# Etape 3b : Deploiement sur sonic via Docker socket

View File

@@ -1,11 +1,11 @@
# Convention de nommage : user-env-project (ex: syoul-main-prestashop)
# Convention de nommage : user-project-branch (ex: syoul-prestashop-main)
# Permet plusieurs instances en parallele (prod/test/multi-user) sans collision
name: ${COMPOSE_PROJECT_NAME:-syoul-main-prestashop}
name: ${COMPOSE_PROJECT_NAME:-syoul-prestashop-main}
services:
prestashop:
image: prestashop/prestashop:8-apache
container_name: ${COMPOSE_PROJECT_NAME:-syoul-main-prestashop}-app
container_name: ${COMPOSE_PROJECT_NAME:-syoul-prestashop-main}-app
restart: unless-stopped
depends_on:
db:
@@ -29,8 +29,8 @@ services:
labels:
# Registrator lit l'IP du conteneur depuis le reseau "sonic" (-useIpFromNetwork sonic)
# et enregistre le service dans Consul avec le tag urlprefix- -> Fabio route vers ce service
SERVICE_NAME: "prestashop"
SERVICE_80_NAME: "prestashop"
SERVICE_NAME: ${COMPOSE_PROJECT_NAME}-app
SERVICE_80_NAME: ${COMPOSE_PROJECT_NAME}-app-80
SERVICE_80_TAGS: urlprefix-${PS_DOMAIN}/*
# Consul healthcheck TCP : verifie que le port 80 est ouvert
# HTTP check inutilisable : PS_SSL_ENABLED_EVERYWHERE=1 redirige tout en 302 -> Consul failing
@@ -45,7 +45,7 @@ services:
db:
image: mariadb:10.11
container_name: ${COMPOSE_PROJECT_NAME:-syoul-main-prestashop}-db
container_name: ${COMPOSE_PROJECT_NAME:-syoul-prestashop-main}-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}