services: nginx: image: nginx:alpine depends_on: - php ports: - "${NGINX_PORT:-8080}:80" volumes: - ../:/var/www/html:ro - ./nginx/conf.d:/etc/nginx/conf.d:ro php: build: context: ./php args: UID: ${UID:-1000} GID: ${GID:-1000} depends_on: mysql: condition: service_healthy rabbitmq: condition: service_healthy volumes: - ../:/var/www/html mysql: image: mysql:8.4 environment: MYSQL_DATABASE: ${MYSQL_DATABASE:-app} MYSQL_USER: ${MYSQL_USER:-app} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-!ChangeMe!} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-!ChangeMe!} healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-!ChangeMe!}"] interval: 5s timeout: 5s retries: 10 volumes: - mysql_data:/var/lib/mysql - ./mysql/conf.d:/etc/mysql/conf.d:ro rabbitmq: image: rabbitmq:4-management-alpine environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-guest} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-guest} healthcheck: test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"] interval: 5s timeout: 5s retries: 10 ports: - "${RABBITMQ_MANAGEMENT_PORT:-15672}:15672" volumes: - rabbitmq_data:/var/lib/rabbitmq volumes: mysql_data: rabbitmq_data: