
services:
  backend:
    container_name: bilinote-backend
    build:
      context: .
      dockerfile: backend/Dockerfile
    env_file:
      - .env
    environment:
      - BACKEND_PORT=${BACKEND_PORT}
      - BACKEND_HOST=${BACKEND_HOST}
    volumes:
      - ./backend:/app
    expose:
      - "${BACKEND_PORT}"  # 不再对外暴露，用于 nginx 内部通信

  frontend:
    container_name: bilinote-frontend
    build:
      context: .
      dockerfile: BillNote_frontend/Dockerfile
    env_file:
      - .env
    expose:
      - "80"  # 不暴露给宿主机，只供 nginx 访问

  nginx:
    container_name: bilinote-nginx
    image: nginx:1.25-alpine
    ports:
      - "${APP_PORT}:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - backend
      - frontend
