File size: 1,242 Bytes
950a676
3c72a85
 
 
 
 
 
 
 
 
 
dae7763
 
3c72a85
dae7763
aedca14
 
 
 
dae7763
3c72a85
 
 
 
 
 
 
 
 
 
 
dae7763
aedca14
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
# 使用一个基础镜像。
FROM alpine:latest

# 1. 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 设置工作目录
WORKDIR /app

# 2. 获取 OpenList 二进制文件
# 安装 curl 和 jq 用于从 GitHub API 获取最新的下载链接
RUN apk add --no-cache curl jq

# 使用 GitHub API 获取最新 release 的下载链接
# 确保即使 assets 字段不存在或为空,jq 也不会报错,并且使用更通用的文件名匹配
RUN LATEST_RELEASE_URL=$(curl -sL https://api.github.com/repos/OpenListTeam/OpenList/releases/beta | \
    jq -r '.assets?[] | select(.name | test("OpenList_linux-amd64.*\\.tar\\.gz$")) | .browser_download_url') && \
    if [ -z "$LATEST_RELEASE_URL" ]; then echo "Error: Could not find a suitable OpenList_linux-amd64.tar.gz asset in latest release assets." && exit 1; fi && \
    wget -q -O openlist-linux-amd64.tar.gz "$LATEST_RELEASE_URL"

# 3. 解压并授予执行权限
RUN tar -xzf openlist-linux-amd64.tar.gz

# 授予下载的 openlist 二进制文件执行权限
RUN chmod +x openlist

# 4. 运行 OpenList 服务器
# 设置容器启动时执行的命令
CMD ["./openlist", "server"]

# OpenList 监听端口
EXPOSE 5244