x-docker-settings: &docker-settings build: context: . args: - BUILDKIT_INLINE_CACHE=1 services: web: build: context: ./docker/nginx dockerfile: Dockerfile ports: - "${APP_PORT:-8000}:80" - "127.0.0.1:8080:80" - "${APP_SSL_PORT:-443}:443" environment: - APP_ENV=${APP_ENV:-development} volumes: - ./:/var/www/html:cached - ./ssl:/etc/nginx/ssl:ro # SSL-Zertifikate mounten depends_on: php: condition: service_started restart: unless-stopped networks: - frontend - backend env_file: - .env php: container_name: php build: context: . dockerfile: docker/php/Dockerfile args: - ENV=${APP_ENV:-dev} - COMPOSER_INSTALL_FLAGS=${COMPOSER_INSTALL_FLAGS:---no-scripts --no-autoloader} volumes: # Shared Volume für Composer-Cache über Container-Neustarts hinweg - composer-cache:/root/.composer/cache # Bindet das Projektverzeichnis für Live-Änderungen ein - ./:/var/www/html:cached # Verhindert Überschreiben der Vendor-Verzeichnisse #- /var/www/html/vendor #- cache-volume:/var/www/html/cache:rw environment: PHP_IDE_CONFIG: "serverName=docker" APP_ENV: ${APP_ENV:-development} healthcheck: test: [ "CMD", "php", "-v" ] interval: 10s timeout: 5s retries: 5 restart: unless-stopped networks: - backend #- cache # backend: # aliases: # - php # cache: env_file: - .env redis: image: redis:8-alpine volumes: - ./docker/redis/redis.conf:/usr/local/etc/redis/redis.conf - redis_data:/data command: ["redis-server", "/usr/local/etc/redis/redis.conf"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 5s retries: 3 restart: unless-stopped networks: - cache env_file: - .env networks: frontend: driver: bridge backend: driver: bridge cache: driver: bridge volumes: redis_data: composer-cache: #cache-volume: