services: postgres: image: postgres:${POSTGRES_VERSION:-17.4-alpine3.21} container_name: postgres restart: always user: "${UID:-0}" environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} volumes: - pg_data:/var/lib/postgresql/data # Postgres data - /home/${CONTEXT}/sockets/postgresql:/var/run/postgresql # Postgres socket deploy: resources: limits: cpus: "${POSTGRES_CPU:-0.5}" memory: "${POSTGRES_RAM:-0.5G}" networks: - default healthcheck: test: ['CMD-SHELL', 'pg_isready -U postgres'] interval: 1s timeout: 5s retries: 10 networks: default: driver: bridge volumes: pg_data: driver: local