Files
michaelschiemer/docker-compose.yml

100 lines
2.2 KiB
YAML

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: