# 构建 Go 服务 FROM golang:1.21-alpine AS go-builder WORKDIR /app # 安装必要的构建工具 RUN apk add --no-cache gcc musl-dev # 复制 Go 项目文件 COPY . . # 构建 Go 服务 RUN go build -o main ./main.go # 构建 Python 服务 FROM python:3.11-slim WORKDIR /app # 安装必要的系统依赖 RUN apt-get update && apt-get install -y \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # 创建音频目录 RUN mkdir -p /app/audio # 复制 Python 文件服务器 COPY file_server.py . # 从 go-builder 阶段复制编译好的 Go 服务 COPY --from=go-builder /app/main . # 复制配置文件(如果有的话) COPY --from=go-builder /app/config.yaml . # 设置环境变量 ENV PORT=8000 ENV GO_PORT=8080 # 创建启动脚本 RUN echo '#!/bin/bash\n\ # 启动 Go 服务\n\ ./main &\n\ # 启动 Python 文件服务器\n\ python file_server.py -p $PORT\n\ ' > /app/start.sh && chmod +x /app/start.sh # 暴露端口 EXPOSE 8000 8080 # 设置工作目录 WORKDIR /app # 启动服务 CMD ["/app/start.sh"]