services: # ---------------------------------------- # MariaDB Database # ---------------------------------------- mariadb: image: mariadb:10.11 container_name: sec_lab_db environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: sec_lab MYSQL_USER: lab_user MYSQL_PASSWORD: lab_password volumes: - db_data:/var/lib/mysql networks: - lab_net restart: always # ---------------------------------------- # وب‌سرور اپلیکیشن اصلی (Victim) # ---------------------------------------- victim-nginx: image: nginx:stable-alpine container_name: sec_lab_victim_nginx ports: - "8721:80" volumes: - ./:/var/www/html:ro - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - php networks: - lab_net restart: always # ---------------------------------------- # هسته پردازشی PHP (مشترک بین دو سایت) # ---------------------------------------- php: container_name: sec_lab_php image: browser-sec-lab-php:latest build: context: . dockerfile: ./docker/php/Dockerfile args: - LINUX_REGISTRY=http://mirror.arvancloud.ir/debian - SECURITY_REGISTRY=http://mirror.arvancloud.ir/debian-security - NPM_REGISTRY=https://package-mirror.liara.ir/repository/npm/ network: host volumes: - ./:/var/www/html:ro - /vendor depends_on: - mariadb networks: - lab_net restart: "no" # ---------------------------------------- # وب‌سرور اپلیکیشن مهاجم (Hacker) # ---------------------------------------- attacker-app: image: nginx:stable-alpine container_name: sec_lab_attacker_nginx ports: - "8723:80" volumes: - ./:/var/www/html:ro - ./docker/nginx/hacker.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - php networks: - lab_net restart: always networks: lab_net: driver: bridge volumes: db_data: