# ---------------------------------------
# 这是开发模式 (Development Mode) 的配置
# ---------------------------------------

# 1. 使用 Node 20 的 Alpine 版本 (轻量级)
FROM node:20-alpine

# 【关键新增】安装 libc6 兼容库
# 这一步能解决 90% 的 "Cannot find module ... musl.node" 或二进制文件缺失问题
RUN apk add --no-cache libc6-compat

# 设置工作目录
WORKDIR /app

# 2. 优先复制 package.json 和 lock 文件
# 这样如果只改代码不改依赖，Docker 会利用缓存跳过安装步骤，构建更快
COPY package*.json ./

# 3. 安装依赖
# 这一步会在容器内部下载适合 Alpine Linux 的依赖包
RUN npm install

# 4. 复制其余源代码
COPY . .

# 5. 暴露端口 (仅作声明，方便查看)
EXPOSE 5173

# 6. 启动开发服务器
# 必须加 --host，否则只能在容器内部访问，无法通过浏览器 localhost 访问
CMD ["npm", "run", "dev", "--", "--host"]