services:
  generator:
    build: ./generator
    volumes:
      - ./data:/var/data  # Монтирование локальной папки data в /var/data в контейнере
    entrypoint: ["sh", "-c", "if [ -z \"$(ls -A /var/data)\" ]; then python generate_files.py; else echo '/var/data is not empty'; fi"] # Запуск команды, проверяющей, пуста ли папка /var/data. Если пуста, запускается скрипт генерации данных. 
 
  app_1:
    build: ./app_1
    image: app_1
    container_name: app_1
    volumes:
      - ./data:/var/data  # Монтирование локальной папки data в /var/data
      - ./result:/var/result  # Монтирование локальной папки result в /var/result
    depends_on:
      - generator
  
  app_2:
    build: ./app_2
    image: app_2
    depends_on:
      - app_1
    container_name: app_2
    volumes:
      - shared-result:/var/result
      - ./data:/var/data  # Монтирование локальной папки data в /var/data
      - ./result:/var/result  # Монтирование локальной папки result в /var/result

volumes:
  shared-result: