version: "3.9" services: #Base de donnée mysql de la borne sur laquelle est stockée tous les avis et les stats db: image: mysql:latest container_name: db expose: - 3306 volumes: - ./db:/docker-entrypoint-initdb.d restart: always healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-uroot"] # Command to check health. interval: 5s # Interval between health checks. timeout: 5s # Timeout for each health checking. retries: 20 # Hou many times retries. start_period: 10s # Estimated time to boot. environment: MYSQL_ROOT_PASSWORD: telereview MYSQL_DATABASE: telereview #Interface d'aministration pour la bdd phpmyadmin: image: phpmyadmin:latest restart: always container_name: phpmyadmin depends_on: db: condition: service_healthy environment: PMA_ARBITRARY: 1 PMA_HOST: db PMA_USER: root PMA_PASSWORD: telereview ports: - 8000:80 #API de gestion des avis, permet d'ajouter ou de récuperer des avis ou les stats sur les avis par des requêtes HTTP reviews_api: container_name: reviews_api ports: - 8080:8080 environment: - NODE_ENV=production - DB_USER=root - DB_PASSWORD=telereview - DB_HOST=db - DB_NAME=telereview - PORT=8080 depends_on: db: condition: service_healthy build: ./reviews_api restart: always #Serveur web de l'interface de la borne # interface_borne: # image: httpd:latest # volumes: # - ./interface_borne:/usr/local/apache2/htdocs/ # container_name: interface_borne # ports: # - 8888:80 # #Serveur web de l'interface admin # interface_admin: # image: httpd:latest # volumes: # - ./interface_admin:/usr/local/apache2/htdocs/ # container_name: interface_admin # ports: # - 80:80 # #Backend de la borne : scripts pythons de reconnaissances video et audio # #Envoient les infos a l'interface de la borne par websocket pour mettre a jour l'interface rapidement # #Met a jour les avis en faisant des requêtes a l'API # backend_reconnaissance: # build: ./backend_reconnaissance # container_name: backend_reconnaissance # restart: always # devices: # - /dev/video3:/dev/video0 # environment: # - PORT=5000 # - HOST=backend_reconnaissance # ports: # #Ce container est le serveur websocker dont le client est l'interface de la borne qui tourne dans le navigateur # - 5000:5000 # video_loopback: # build: ./video_loopback # container_name: video_loopback # restart: always # devices: # - /dev/video0:/dev/video0 # - /dev/video2:/dev/video1 # - /dev/video3:/dev/video2