services: nginx: image: nginx:stable-alpine3.23-perl container_name: nginx restart: unless-stopped ports: - "8000:80" volumes: - ./nginx/payment.conf:/etc/nginx/conf.d/default.conf - ${BACKEND_PATH}:/var/www/${PROJECT_NAME} networks: - payment redis: image: redis:8.6.0-alpine3.23 container_name: redis restart: unless-stopped tty: true networks: - payment postgres: image: postgres:18.2-alpine3.23 container_name: payment-db restart: unless-stopped ports: - "8092:5432" environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ] interval: 30s timeout: 10s retries: 3 volumes: - payment-db:/var/lib/postgresql/data networks: - payment backend: build: context: ${BACKEND_PATH} dockerfile: Dockerfile container_name: laravel tty: true restart: unless-stopped ports: - "9000:9000" volumes: - ${BACKEND_PATH}:/var/www/${PROJECT_NAME} depends_on: - postgres networks: - payment # logging: # driver: "syslog" # options: # syslog-address: "tcp://host.docker.internal:514" # tag: "laravel-backend" # syslog-facility: "daemon" # max-size: "10m" # mem_limit: 512M # cpus: 1 volumes: payment-db: driver: local networks: payment: driver: bridge