services: app: build: context: . dockerfile: Dockerfile platform: linux/amd64 container_name: labyrinth-app ports: - "8080:80" volumes: - ./:/var/www/html environment: DB_HOST: db DB_DATABASE: labyrinth DB_USERNAME: labyrinth DB_PASSWORD: labyrinth depends_on: db: condition: service_healthy command: > sh -lc "if [ ! -f laravel_rep/vendor/autoload.php ]; then composer install --working-dir=laravel_rep --no-interaction --no-plugins; fi && mkdir -p laravel_rep/app/storage laravel_rep/app/storage/cache laravel_rep/app/storage/logs laravel_rep/app/storage/meta laravel_rep/app/storage/sessions laravel_rep/app/storage/views && chown -R www-data:www-data laravel_rep/app/storage && apache2-foreground" db: image: mysql:5.7 platform: linux/amd64 container_name: labyrinth-db environment: MYSQL_DATABASE: labyrinth MYSQL_USER: labyrinth MYSQL_PASSWORD: labyrinth MYSQL_ROOT_PASSWORD: root ports: - "3307:3306" volumes: - mysql_data:/var/lib/mysql - ./labyrinth.sql:/docker-entrypoint-initdb.d/01-labyrinth.sql:ro healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-proot"] interval: 10s timeout: 5s retries: 10 volumes: mysql_data: