version: '3' services: php: build: dockerfile: Dockerfile restart: unless-stopped environment: SERVER_NAME: ${SERVER_NAME:-localhost} volumes: - ./:/www extra_hosts: # Ensure that host.docker.internal is correctly defined on Linux - host.docker.internal:host-gateway ports: - target: 80 published: ${HTTP_PORT:-80} protocol: tcp ###> doctrine/doctrine-bundle ### database: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-app} # You should definitely change the password in production POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-demo} POSTGRES_USER: ${POSTGRES_USER:-app} volumes: - database_data:/var/lib/postgresql/data:rw # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/db/data:/var/lib/postgresql/data:rw ###< doctrine/doctrine-bundle ### volumes: ###> doctrine/doctrine-bundle ### database_data: ###< doctrine/doctrine-bundle ###