Upload 2 files
Browse files- Dockerfile +34 -0
- env.sh +29 -0
Dockerfile
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM golang:1.21-alpine3.18 as builder
|
| 2 |
+
|
| 3 |
+
# 设置工作目录
|
| 4 |
+
WORKDIR /app
|
| 5 |
+
|
| 6 |
+
# 克隆项目仓库
|
| 7 |
+
RUN apk add --no-cache git && \
|
| 8 |
+
git clone https://github.com/EverythingSuckz/TG-FileStreamBot.git . && \
|
| 9 |
+
apk del git
|
| 10 |
+
|
| 11 |
+
# 构建二进制文件
|
| 12 |
+
RUN CGO_ENABLED=0 go build -o /app/fsb -ldflags="-w -s" ./cmd/fsb
|
| 13 |
+
|
| 14 |
+
# 使用scratch作为最终镜像以减小体积
|
| 15 |
+
FROM alpine:3.18
|
| 16 |
+
|
| 17 |
+
# 从构建阶段复制二进制文件
|
| 18 |
+
COPY --from=builder /app/fsb /app/fsb
|
| 19 |
+
|
| 20 |
+
# 创建日志目录
|
| 21 |
+
RUN mkdir -p /app/logs
|
| 22 |
+
|
| 23 |
+
# 复制环境变量文件
|
| 24 |
+
COPY env.sh /app/env.sh
|
| 25 |
+
RUN chmod +x /app/env.sh
|
| 26 |
+
|
| 27 |
+
# 设置环境变量
|
| 28 |
+
ENV PORT=7860
|
| 29 |
+
|
| 30 |
+
# 暴露端口 - Hugging Face Space默认使用7860端口
|
| 31 |
+
EXPOSE 7860
|
| 32 |
+
|
| 33 |
+
# 入口点
|
| 34 |
+
ENTRYPOINT ["/bin/sh", "-c", "/app/env.sh && /app/fsb run"]
|
env.sh
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/sh
|
| 2 |
+
|
| 3 |
+
# 创建环境变量文件
|
| 4 |
+
cat > /app/fsb.env << EOL
|
| 5 |
+
API_ID=${API_ID}
|
| 6 |
+
API_HASH=${API_HASH}
|
| 7 |
+
BOT_TOKEN=${BOT_TOKEN}
|
| 8 |
+
LOG_CHANNEL=${LOG_CHANNEL}
|
| 9 |
+
PORT=${PORT:-7860}
|
| 10 |
+
HASH_LENGTH=${HASH_LENGTH:-6}
|
| 11 |
+
HOST=${HOST:-https://${SPACE_ID}.hf.space}
|
| 12 |
+
EOL
|
| 13 |
+
|
| 14 |
+
# 如果配置了多个机器人令牌,则添加它们
|
| 15 |
+
if [ -n "$MULTI_TOKEN1" ]; then
|
| 16 |
+
echo "MULTI_TOKEN1=${MULTI_TOKEN1}" >> /app/fsb.env
|
| 17 |
+
fi
|
| 18 |
+
|
| 19 |
+
if [ -n "$MULTI_TOKEN2" ]; then
|
| 20 |
+
echo "MULTI_TOKEN2=${MULTI_TOKEN2}" >> /app/fsb.env
|
| 21 |
+
fi
|
| 22 |
+
|
| 23 |
+
if [ -n "$MULTI_TOKEN3" ]; then
|
| 24 |
+
echo "MULTI_TOKEN3=${MULTI_TOKEN3}" >> /app/fsb.env
|
| 25 |
+
fi
|
| 26 |
+
|
| 27 |
+
if [ -n "$MULTI_TOKEN4" ]; then
|
| 28 |
+
echo "MULTI_TOKEN4=${MULTI_TOKEN4}" >> /app/fsb.env
|
| 29 |
+
fi
|