services: frontend: build: ./frontend container_name: budget_frontend restart: always ports: - "3000:3000" depends_on: - backend backend: build: ./backend container_name: budget_backend restart: always env_file: - .env ports: - "5000:5000" depends_on: - postgres postgres: image: postgres:16 container_name: budget_postgres restart: always environment: POSTGRES_USER: budget_user POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: budget_db volumes: - postgres_data:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql ports: - "5432:5432" nginx: image: nginx:latest container_name: budget_nginx restart: always ports: - "80:80" volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - frontend - backend volumes: postgres_data: