# 多阶段构建：Python + Node.js 全栈应用
FROM hb.eazytec-cloud.com/eazytec/eazydevelop-python-node:ubuntu22.04-python3.12-node22 AS python-base

# 设置工作目录
WORKDIR /app

# 复制 Python 后端文件
COPY backend/ /app/backend/
COPY .resource/ /app/.resource/

# 设置环境变量
ENV RESOURCE_PATH=/app/.resource/resource_deploy.json

# 安装 Python 依赖
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && \
    pip install --no-cache-dir -r backend/requirements.txt

# Node.js 阶段
FROM hb.eazytec-cloud.com/eazytec/eazydevelop-python-node:ubuntu22.04-python3.12-node22 AS  node-base
# 设置工作目录
WORKDIR /app

# 复制 Node.js 前端文件
COPY frontend/ /app/frontend/
COPY .resource/ /app/.resource/

# 设置环境变量
ENV RESOURCE_PATH=/app/.resource/resource_deploy.json
ENV NODE_ENV=production

# 安装 Node.js 依赖
RUN cd frontend && npm config set registry https://registry.npmmirror.com && \
    npm install --production

# 最终阶段：合并两个服务
FROM hb.eazytec-cloud.com/eazytec/eazydevelop-python-node:ubuntu22.04-python3.12-node22

# 设置工作目录
WORKDIR /app

# 复制 Python 后端
COPY --from=python-base /app/backend/ /app/backend/
COPY --from=python-base /usr/local/lib/python3.12/site-packages/ /usr/local/lib/python3.12/site-packages/

# 复制 Node.js 前端
COPY --from=node-base /app/frontend/ /app/frontend/
COPY --from=node-base /usr/local/bin/node /usr/local/bin/node
COPY --from=node-base /usr/local/bin/npm /usr/local/bin/npm
COPY --from=node-base /usr/local/lib/node_modules/ /usr/local/lib/node_modules/

# 复制资源文件
COPY .resource/ /app/.resource/

# 拷贝启动脚本
COPY start.sh /app/start.sh

# 设置环境变量
ENV RESOURCE_PATH=/app/.resource/resource_deploy.json
ENV PYTHONPATH=/app/backend
ENV NODE_ENV=production

# 设置启动脚本权限
RUN chmod +x /app/start.sh

# 暴露端口
EXPOSE $APP_PORT_1 $APP_PORT_2

# 启动命令
CMD ["/app/start.sh"]
