Spaces:
Running
Running
# 第一阶段:构建 Go 二进制文件 | |
FROM golang:1.23.2 AS builder | |
# 克隆项目 | |
RUN git clone https://github.com/YuCN0010/DeepLX.git /go/src/github.com/YuCN0010/DeepLX | |
# 设置工作目录 | |
WORKDIR /go/src/github.com/YuCN0010/DeepLX | |
# 初始化 Go 模块(如果还没有 go.mod 文件) | |
RUN go mod init github.com/YuCN0010/DeepLX || true | |
# 下载依赖 | |
RUN go mod download | |
# 编译 Go 代码 | |
RUN CGO_ENABLED=0 go build -o deeplx . | |
# 第二阶段:构建最终镜像 | |
FROM alpine:latest | |
# 设置工作目录 | |
WORKDIR /app | |
# 复制 Go 二进制文件 | |
COPY --from=builder /go/src/github.com/YuCN0010/DeepLX/deeplx /app/deeplx | |
# 复制 cloudflared 二进制文件 | |
COPY --from=cloudflare/cloudflared:latest /usr/local/bin/cloudflared /usr/local/bin/cloudflared | |
# 暴露端口 | |
EXPOSE 11888 | |
# 设置数据目录 | |
WORKDIR /data | |
RUN chmod 777 -R /data | |
# 创建启动脚本 | |
RUN echo '#!/bin/sh' > /start.sh && \ | |
echo 'nohup cloudflared tunnel --no-autoupdate run --token $CF_TOKEN &' >> /start.sh && \ | |
echo '/app/deeplx' >> /start.sh && \ | |
chmod +x /start.sh | |
# 启动服务 | |
CMD ["/start.sh"] |