Upload 2 files
Browse files- Dockerfile +42 -34
- app.py +21 -0
Dockerfile
CHANGED
|
@@ -1,34 +1,42 @@
|
|
| 1 |
-
FROM golang:1.21-alpine3.18 as builder
|
| 2 |
-
|
| 3 |
-
#
|
| 4 |
-
RUN apk update && apk
|
| 5 |
-
|
| 6 |
-
#
|
| 7 |
-
WORKDIR /app
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM golang:1.21-alpine3.18 as builder
|
| 2 |
+
|
| 3 |
+
# 安装git和必要工具
|
| 4 |
+
RUN apk update && apk add --no-cache git && apk upgrade --available && sync
|
| 5 |
+
|
| 6 |
+
# 克隆代码库
|
| 7 |
+
WORKDIR /app
|
| 8 |
+
RUN git clone https://github.com/EverythingSuckz/TG-FileStreamBot .
|
| 9 |
+
|
| 10 |
+
# 编译应用
|
| 11 |
+
RUN CGO_ENABLED=0 go build -o /app/fsb -ldflags="-w -s" ./cmd/fsb
|
| 12 |
+
|
| 13 |
+
# 创建最终镜像
|
| 14 |
+
FROM alpine:3.18
|
| 15 |
+
|
| 16 |
+
# 安装必要的SSL证书供HTTPS请求使用以及Python/Flask
|
| 17 |
+
RUN apk add --no-cache ca-certificates python3 py3-pip
|
| 18 |
+
|
| 19 |
+
# 安装Flask
|
| 20 |
+
RUN pip3 install flask
|
| 21 |
+
|
| 22 |
+
# 复制编译好的二进制文件
|
| 23 |
+
COPY --from=builder /app/fsb /app/fsb
|
| 24 |
+
|
| 25 |
+
# 设置工作目录
|
| 26 |
+
WORKDIR /app
|
| 27 |
+
|
| 28 |
+
# 复制环境变量文件和Flask应用
|
| 29 |
+
COPY fsb.env /app/fsb.env
|
| 30 |
+
COPY app.py /app/app.py
|
| 31 |
+
|
| 32 |
+
# 增加启动脚本
|
| 33 |
+
RUN echo '#!/bin/sh' > /app/start.sh && \
|
| 34 |
+
echo 'nohup /app/fsb run > /app/fsb.log 2>&1 &' >> /app/start.sh && \
|
| 35 |
+
echo 'python3 /app/app.py' >> /app/start.sh && \
|
| 36 |
+
chmod +x /app/start.sh
|
| 37 |
+
|
| 38 |
+
# 暴露端口
|
| 39 |
+
EXPOSE 7860
|
| 40 |
+
|
| 41 |
+
# 设置入口点
|
| 42 |
+
ENTRYPOINT ["/app/start.sh"]
|
app.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
from flask import Flask, redirect, jsonify
|
| 3 |
+
|
| 4 |
+
app = Flask(__name__)
|
| 5 |
+
|
| 6 |
+
@app.route('/')
|
| 7 |
+
def home():
|
| 8 |
+
"""重定向到项目GitHub页面"""
|
| 9 |
+
return redirect('https://github.com/EverythingSuckz/TG-FileStreamBot')
|
| 10 |
+
|
| 11 |
+
@app.route('/health')
|
| 12 |
+
def health():
|
| 13 |
+
"""健康检查端点"""
|
| 14 |
+
return jsonify({
|
| 15 |
+
'status': 'ok',
|
| 16 |
+
'message': 'TG-FileStreamBot 正在运行!'
|
| 17 |
+
})
|
| 18 |
+
|
| 19 |
+
if __name__ == '__main__':
|
| 20 |
+
# 这个文件在Docker中不会直接运行,仅作为参考
|
| 21 |
+
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|