Update Dockerfile
Browse files- Dockerfile +66 -67
Dockerfile
CHANGED
|
@@ -1,70 +1,69 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
#
|
| 7 |
-
|
| 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 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
#
|
| 56 |
-
RUN
|
| 57 |
-
|
| 58 |
-
# 创建临时备份目录和数据目录
|
| 59 |
-
RUN mkdir -p /tmp/sillytavern_backup && \
|
| 60 |
-
mkdir -p ${APP_HOME}/data
|
| 61 |
-
|
| 62 |
-
# 设置权限
|
| 63 |
-
RUN chmod -R 777 ${APP_HOME} && \
|
| 64 |
-
chmod -R 777 /tmp/sillytavern_backup
|
| 65 |
|
| 66 |
# 暴露端口
|
| 67 |
-
EXPOSE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
-
#
|
| 70 |
-
CMD [
|
|
|
|
| 1 |
+
# 使用 git 克隆代码
|
| 2 |
+
FROM alpine/git as clone
|
| 3 |
+
WORKDIR /app
|
| 4 |
+
RUN git clone https://github.com/deanxv/chutesAI2api.git
|
| 5 |
+
|
| 6 |
+
# 使用最新的 golang 镜像
|
| 7 |
+
FROM golang:latest
|
| 8 |
+
|
| 9 |
+
# 设置工作目录
|
| 10 |
+
WORKDIR /app/chutesai2api
|
| 11 |
+
|
| 12 |
+
# 从上一阶段复制代码
|
| 13 |
+
COPY --from=clone /app/chutesAI2api .
|
| 14 |
+
|
| 15 |
+
# 创建 index.html
|
| 16 |
+
RUN echo '<!DOCTYPE html>' > index.html && \
|
| 17 |
+
echo '<html>' >> index.html && \
|
| 18 |
+
echo '<head>' >> index.html && \
|
| 19 |
+
echo ' <title>API 运行状态</title>' >> index.html && \
|
| 20 |
+
echo ' <style>' >> index.html && \
|
| 21 |
+
echo ' body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f2f5; }' >> index.html && \
|
| 22 |
+
echo ' .container { text-align: center; padding: 20px; background-color: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }' >> index.html && \
|
| 23 |
+
echo ' .rocket { font-size: 50px; margin-bottom: 10px; }' >> index.html && \
|
| 24 |
+
echo ' .status { font-size: 24px; color: #1a73e8; }' >> index.html && \
|
| 25 |
+
echo ' </style>' >> index.html && \
|
| 26 |
+
echo '</head>' >> index.html && \
|
| 27 |
+
echo '<body>' >> index.html && \
|
| 28 |
+
echo ' <div class="container">' >> index.html && \
|
| 29 |
+
echo ' <div class="rocket">🚀</div>' >> index.html && \
|
| 30 |
+
echo ' <div class="status">API 成功运行</div>' >> index.html && \
|
| 31 |
+
echo ' </div>' >> index.html && \
|
| 32 |
+
echo '</body>' >> index.html && \
|
| 33 |
+
echo '</html>' >> index.html
|
| 34 |
+
|
| 35 |
+
# 修复 go.mod 文件
|
| 36 |
+
RUN sed -i 's/go 1.23.0/go 1.22/' go.mod && \
|
| 37 |
+
sed -i '/toolchain/d' go.mod
|
| 38 |
+
|
| 39 |
+
# 修改 main.go 添加首页路由
|
| 40 |
+
RUN echo 'package main' > main.go && \
|
| 41 |
+
echo 'import (' >> main.go && \
|
| 42 |
+
echo ' "net/http"' >> main.go && \
|
| 43 |
+
echo ')' >> main.go && \
|
| 44 |
+
echo 'func main() {' >> main.go && \
|
| 45 |
+
echo ' http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {' >> main.go && \
|
| 46 |
+
echo ' http.ServeFile(w, r, "index.html")' >> main.go && \
|
| 47 |
+
echo ' })' >> main.go && \
|
| 48 |
+
echo ' http.ListenAndServe(":7860", nil)' >> main.go && \
|
| 49 |
+
echo '}' >> main.go
|
| 50 |
+
|
| 51 |
+
# 设置变量
|
| 52 |
+
ENV TZ=Asia/Shanghai
|
| 53 |
+
ENV PORT=7860
|
| 54 |
+
|
| 55 |
+
# 构建应用
|
| 56 |
+
RUN go mod download
|
| 57 |
+
RUN go build -o main .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
# 暴露端口
|
| 60 |
+
EXPOSE 7860
|
| 61 |
+
|
| 62 |
+
# 创建启动脚本
|
| 63 |
+
RUN echo '#!/bin/sh' > start.sh && \
|
| 64 |
+
echo 'echo "API🚀成功运行"' >> start.sh && \
|
| 65 |
+
echo './main' >> start.sh && \
|
| 66 |
+
chmod +x start.sh
|
| 67 |
|
| 68 |
+
# 运行启动脚本
|
| 69 |
+
CMD ["./start.sh"]
|