56 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			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"]  | 
