docker-compose.yml (1071B)
1 version: '3.8' 2 3 services: 4 postgres: 5 build: 6 context: . 7 dockerfile: Dockerfile 8 container_name: ecommerce_postgres 9 restart: unless-stopped 10 11 environment: 12 POSTGRES_DB: ${POSTGRES_DB:-ecommerce} 13 POSTGRES_USER: ${POSTGRES_USER:-ecommerce_user} 14 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ecommerce_password} 15 POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=en_US.UTF-8" 16 17 ports: 18 - "${POSTGRES_PORT:-5432}:5432" 19 20 volumes: 21 # Persistent data storage 22 - postgres_data:/var/lib/postgresql/data 23 # Optional: Additional SQL scripts can be mounted here 24 # - ./scripts:/docker-entrypoint-initdb.d/extra 25 26 networks: 27 - ecommerce_network 28 29 healthcheck: 30 test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-ecommerce_user} -d ${POSTGRES_DB:-ecommerce}"] 31 interval: 10s 32 timeout: 5s 33 retries: 5 34 start_period: 30s 35 36 volumes: 37 postgres_data: 38 driver: local 39 name: ecommerce_postgres_data 40 41 networks: 42 ecommerce_network: 43 driver: bridge 44 name: ecommerce_network