version: '3.8' services: # Next.js 应用服务 marketing-site: build: context: . dockerfile: Dockerfile environment: - NODE_ENV=production restart: unless-stopped container_name: marketing-site-https networks: - marketing-network # 不直接暴露端口,通过 nginx 反向代理访问 # Nginx 反向代理服务 nginx: image: nginx:alpine container_name: nginx-https restart: unless-stopped ports: # 使用标准端口 80 和 443 # 如果本地 nginx 正在运行,需要先停止本地 nginx 服务 # 或者将以下端口改为其他端口(如 "8080:80" "8443:443") - "80:80" - "443:443" volumes: # Nginx 配置文件 - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro # 挂载外部 SSL 证书 - /home/owen/ssl_key/smartsensiguard.cn.pem:/etc/nginx/ssl/smartsensiguard.cn.pem:ro - /home/owen/ssl_key/smartsensiguard.cn.key:/etc/nginx/ssl/smartsensiguard.cn.key:ro # Nginx 日志 - nginx-logs:/var/log/nginx depends_on: - marketing-site networks: - marketing-network networks: marketing-network: driver: bridge volumes: nginx-logs: driver: local