version: '3' networks: dev: services: web: networks: - dev container_name: srcl-dev-web environment: - APACHE_RUN_USER=#1000 build: context: docker/web image: srcl/local-dev-env ports: - 80:80 expose: - 9003 volumes: - ./app:/var/www/html - ./docker/phpconfig/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini - ./docker/phpconfig/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini - ./docker/phpconfig/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.ini - /var/www/html/vendor/ database: networks: - dev image: mariadb:10.6 container_name: srcl-dev-db restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: 123 MYSQL_USER: root MYSQL_PASSWORD: 123 volumes: - ./docker/database:/var/lib/mysql #If you are going to be using the same database data across local servers/projects, change ./docker/database to a location #outside of this server tree and then set this volume path in the docker-compose.yml for each server. phpmyadmin: networks: - dev image: phpmyadmin container_name: srcl-dev-phpmyadmin depends_on: - database links: - database environment: PMA_HOST: database PMA_PORT: 3306 MYSQL_ROOT_PASSWORD: 123 ports: - 8000:80 - 4300:443 volumes: - /sessions redis: networks: - dev image: redis:alpine container_name: srcl-dev-redis command: redis-server --appendonly yes --requirepass "myapp" ports: - "8002:6379"