services: prestashop: image: prestashop/prestashop:8-apache container_name: prestashop restart: unless-stopped depends_on: db: condition: service_healthy environment: DB_SERVER: db DB_NAME: prestashop DB_USER: prestashop DB_PASSWD: ${DB_PASSWORD} PS_DOMAIN: ${PS_DOMAIN} PS_FOLDER_ADMIN: ${PS_ADMIN_FOLDER:-admin-secure} ADMIN_MAIL: ${PRESTASHOP_ADMIN_EMAIL} ADMIN_PASSWD: ${PRESTASHOP_ADMIN_PASSWORD} PS_INSTALL_AUTO: "1" PS_ERASE_DB: "0" # SSL desactive cote PrestaShop : Fabio gere le TLS en terminaison # Cela evite les boucles de redirection HTTPS PS_ENABLE_SSL: "0" volumes: - ps_data:/var/www/html labels: # Registrator lit l'IP du conteneur depuis le reseau "sonic" (-useIpFromNetwork sonic) # et enregistre le service dans Consul -> Fabio route presta.syoul.fr vers cette IP SERVICE_NAME: "prestashop" SERVICE_80_NAME: "prestashop" SERVICE_80_TAGS: "urlprefix-${PS_DOMAIN}/" # sonic-acme-1 (acme-companion) emet le cert TLS et le copie dans /host/certs/ # Fabio le detecte automatiquement par SNI pour HTTPS LETSENCRYPT_HOST: "${PS_DOMAIN}" networks: - prestashop-net # Reseau "sonic" requis pour que Registrator trouve l'IP du conteneur - sonic db: image: mariadb:10.11 container_name: prestashop-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MYSQL_DATABASE: prestashop MYSQL_USER: prestashop MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - db_data:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 10 networks: - prestashop-net volumes: ps_data: db_data: networks: prestashop-net: driver: bridge sonic: # Reseau externe existant sur le serveur (partage avec Registrator/Consul/Fabio) external: true