2025-06-18 09:36:59 +08:00

56 lines
1.0 KiB
Docker

# 构建 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"]