diff --git a/.woodpecker.yml b/.woodpecker.yml index fa71f76..edb1e0c 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -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 diff --git a/docker-compose.yml b/docker-compose.yml index 335cd54..54c916c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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}