Spaces:
Runtime error
Runtime error
Upload 3 files
Browse files- Dockerfile +11 -10
- README.md +9 -10
- entrypoint.sh +4 -12
Dockerfile
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
# 使用 uni-api 作者发布的官方镜像作为基础
|
2 |
-
# 这会从 Docker Hub 拉取最新的官方镜像
|
3 |
FROM yym68686/uni-api:latest
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
# 将你的自定义入口点脚本复制到镜像的文件系统中
|
6 |
-
COPY entrypoint.sh /entrypoint.sh
|
7 |
|
8 |
# 确保脚本在镜像内部具有执行权限
|
9 |
-
RUN chmod +x /entrypoint.sh
|
10 |
-
|
11 |
-
# 将你的自定义脚本设置为容器的入口点(ENTRYPOINT)。
|
12 |
-
# 这会覆盖镜像的默认启动行为,在容器启动时首先运行你的脚本。
|
13 |
-
ENTRYPOINT ["/entrypoint.sh"]
|
14 |
|
15 |
-
#
|
16 |
-
|
17 |
-
# 所以这里通常不需要再指定 CMD。
|
|
|
1 |
# 使用 uni-api 作者发布的官方镜像作为基础
|
|
|
2 |
FROM yym68686/uni-api:latest
|
3 |
|
4 |
+
# 设置用户和工作目录来避免权限问题
|
5 |
+
RUN useradd -m -u 1000 user
|
6 |
+
USER user
|
7 |
+
ENV HOME=/home/user \
|
8 |
+
PATH=/home/user/.local/bin:$PATH
|
9 |
+
WORKDIR $HOME/app
|
10 |
+
|
11 |
# 将你的自定义入口点脚本复制到镜像的文件系统中
|
12 |
+
COPY --chown=user entrypoint.sh $HOME/app/entrypoint.sh
|
13 |
|
14 |
# 确保脚本在镜像内部具有执行权限
|
15 |
+
RUN chmod +x $HOME/app/entrypoint.sh
|
|
|
|
|
|
|
|
|
16 |
|
17 |
+
# 将你的自定义脚本设置为容器的入口点
|
18 |
+
ENTRYPOINT ["./entrypoint.sh"]
|
|
README.md
CHANGED
@@ -1,11 +1,10 @@
|
|
1 |
---
|
2 |
-
title: Uni API
|
3 |
-
emoji: 🌍
|
4 |
-
colorFrom: gray
|
5 |
-
colorTo: yellow
|
6 |
-
sdk: docker
|
7 |
-
app_port: 8000 #
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
---
|
|
|
1 |
---
|
2 |
+
title: Uni API
|
3 |
+
emoji: 🌍
|
4 |
+
colorFrom: gray
|
5 |
+
colorTo: yellow
|
6 |
+
sdk: docker
|
7 |
+
app_port: 8000 # 确保这与uni-api实际监听的端口匹配
|
8 |
+
pinned: false
|
9 |
+
license: gpl-3.0
|
10 |
+
---
|
|
entrypoint.sh
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
#!/bin/sh
|
2 |
set -e
|
3 |
-
CONFIG_FILE_PATH="/
|
4 |
|
5 |
echo "DEBUG: Entrypoint script started." # 添加启动信息
|
6 |
|
@@ -10,16 +10,11 @@ if [ -z "$API_YAML_CONTENT" ]; then
|
|
10 |
exit 1
|
11 |
else
|
12 |
echo "DEBUG: API_YAML_CONTENT secret found. Preparing to write..."
|
13 |
-
# 可以在写入前打印部分内容(小心不要打印密钥)
|
14 |
-
# echo "DEBUG: YAML content starts with: $(echo "$API_YAML_CONTENT" | head -c 50)"
|
15 |
printf '%s\n' "$API_YAML_CONTENT" > "$CONFIG_FILE_PATH"
|
16 |
echo "DEBUG: Attempted to write to $CONFIG_FILE_PATH."
|
17 |
# 检查文件是否真的创建了
|
18 |
if [ -f "$CONFIG_FILE_PATH" ]; then
|
19 |
echo "DEBUG: File $CONFIG_FILE_PATH created successfully. Size: $(wc -c < "$CONFIG_FILE_PATH") bytes."
|
20 |
-
# 可以打印文件前几行看看内容对不对(小心密钥)
|
21 |
-
# echo "DEBUG: First few lines of $CONFIG_FILE_PATH:"
|
22 |
-
# head -n 5 "$CONFIG_FILE_PATH"
|
23 |
else
|
24 |
echo "ERROR: File $CONFIG_FILE_PATH was NOT created."
|
25 |
exit 1 # 如果文件没创建成功就退出
|
@@ -27,9 +22,6 @@ else
|
|
27 |
fi
|
28 |
|
29 |
echo "DEBUG: About to execute python main.py..." # 添加执行前信息
|
30 |
-
#
|
31 |
-
|
32 |
-
|
33 |
-
# ls -l . /app /home # 查看文件结构
|
34 |
-
exec python main.py "$@"
|
35 |
-
echo "ERROR: If you see this, exec failed!" # exec 成功后这行不会执行
|
|
|
1 |
#!/bin/sh
|
2 |
set -e
|
3 |
+
CONFIG_FILE_PATH="$HOME/app/api.yaml" # 确认路径!
|
4 |
|
5 |
echo "DEBUG: Entrypoint script started." # 添加启动信息
|
6 |
|
|
|
10 |
exit 1
|
11 |
else
|
12 |
echo "DEBUG: API_YAML_CONTENT secret found. Preparing to write..."
|
|
|
|
|
13 |
printf '%s\n' "$API_YAML_CONTENT" > "$CONFIG_FILE_PATH"
|
14 |
echo "DEBUG: Attempted to write to $CONFIG_FILE_PATH."
|
15 |
# 检查文件是否真的创建了
|
16 |
if [ -f "$CONFIG_FILE_PATH" ]; then
|
17 |
echo "DEBUG: File $CONFIG_FILE_PATH created successfully. Size: $(wc -c < "$CONFIG_FILE_PATH") bytes."
|
|
|
|
|
|
|
18 |
else
|
19 |
echo "ERROR: File $CONFIG_FILE_PATH was NOT created."
|
20 |
exit 1 # 如果文件没创建成功就退出
|
|
|
22 |
fi
|
23 |
|
24 |
echo "DEBUG: About to execute python main.py..." # 添加执行前信息
|
25 |
+
# 这里使用相对路径调用主程序
|
26 |
+
cd /home
|
27 |
+
exec python main.py "$@"
|
|
|
|
|
|