Spaces:
Paused
Paused
Update Dockerfile
Browse files- Dockerfile +32 -32
Dockerfile
CHANGED
|
@@ -1,37 +1,37 @@
|
|
| 1 |
-
#
|
| 2 |
-
FROM
|
| 3 |
|
| 4 |
-
#
|
| 5 |
ENV TZ=Asia/Shanghai
|
| 6 |
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
| 7 |
|
| 8 |
-
#
|
| 9 |
-
WORKDIR /
|
| 10 |
-
|
| 11 |
-
#
|
| 12 |
-
#
|
| 13 |
-
RUN
|
| 14 |
-
|
| 15 |
-
# 下载 OpenList 的最新 release
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
#
|
| 19 |
-
RUN tar -
|
| 20 |
-
|
| 21 |
-
#
|
| 22 |
-
#
|
| 23 |
-
#
|
| 24 |
-
|
| 25 |
-
#
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
#
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
| 34 |
CMD ["./openlist", "server"]
|
| 35 |
-
|
| 36 |
-
# OpenList 监听端口
|
| 37 |
-
EXPOSE 5244
|
|
|
|
| 1 |
+
# 使用 Ubuntu 22.04 作为基础镜像,它是一个稳定且常用的 Linux 发行版。
|
| 2 |
+
FROM ubuntu:22.04
|
| 3 |
|
| 4 |
+
# 设置时区
|
| 5 |
ENV TZ=Asia/Shanghai
|
| 6 |
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
| 7 |
|
| 8 |
+
# 设置容器内的工作目录。所有后续命令都将在此目录中执行。
|
| 9 |
+
WORKDIR /app
|
| 10 |
+
|
| 11 |
+
# 确保安装了 wget,它是下载文件所需的工具。
|
| 12 |
+
# ca-certificates 用于确保 HTTPS 连接的安全。
|
| 13 |
+
RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates && rm -rf /var/lib/apt/lists/*
|
| 14 |
+
|
| 15 |
+
# 下载 OpenList 的最新 release 版本。
|
| 16 |
+
# -q 用于静默下载(不显示进度)。
|
| 17 |
+
# -O openlist-linux-amd64.tar.gz 明确指定下载后的文件名。
|
| 18 |
+
# -L 用于跟随 HTTP 重定向,这对于 GitHub 的 latest/download URL 是必需的。
|
| 19 |
+
RUN wget -q -O openlist-linux-amd64.tar.gz -L https://github.com/OpenListTeam/OpenList/releases/latest/download/openlist-linux-amd64.tar.gz
|
| 20 |
+
|
| 21 |
+
# 解压下载的 tarball,并确保 OpenList 可执行文件位于正确的位置并具有执行权限。
|
| 22 |
+
# OpenList 的 Go 二进制文件解压后可能在子目录中(例如,一个名为 OpenList 的文件夹)。
|
| 23 |
+
# 此命令会检查几种常见的解压情况,并将实际的 'openlist' 二进制文件移动到 /app 目录下。
|
| 24 |
+
RUN tar -xzf openlist-linux-amd64.tar.gz && \
|
| 25 |
+
# 尝试将可执行文件移动到 /app 目录的根部
|
| 26 |
+
(mv OpenList/openlist . || mv openlist . || find . -type f -name "openlist*" -exec mv {} . \;) && \
|
| 27 |
+
# 清理可能存在的 OpenList 子目录,避免不必要的空间占用
|
| 28 |
+
rm -rf OpenList && \
|
| 29 |
+
# 授予 'openlist' 二进制文件执行权限
|
| 30 |
+
chmod +x ./openlist
|
| 31 |
+
|
| 32 |
+
# 暴露应用程序监听的端口。OpenList 默认监听 5244 端口。
|
| 33 |
+
EXPOSE 5244
|
| 34 |
+
|
| 35 |
+
# 设置容器启动时执行的默认命令。
|
| 36 |
+
# 这是运行 OpenList 服务器的实际命令。
|
| 37 |
CMD ["./openlist", "server"]
|
|
|
|
|
|
|
|
|