RustDesk-API2 / Dockerfile
HuggingFace0920's picture
Update Dockerfile
108a3e8 verified
raw
history blame
1.68 kB
# 使用官方Ubuntu基础镜像
FROM ubuntu:22.04
# 设置环境变量
ENV APP_HOME /app
ENV DEBIAN_FRONTEND noninteractive
# 安装必要的依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
jq \
tar \
&& rm -rf /var/lib/apt/lists/*
# 创建应用目录
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
# 下载并解压rustdesk-api的最新版本
RUN set -eux; \
# 获取API响应并保存到临时文件,方便调试
curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest > latest_release.json; \
# 显示API响应中的所有资产名称,帮助调试
echo "Available assets:"; \
jq -r '.assets[].name' latest_release.json; \
# 尝试多种匹配方式,确保能找到正确的资产
URL=$(jq -r '.assets[] | select(.name | test("(?i)linux-amd64.tar.gz")) | .browser_download_url' latest_release.json || \
jq -r '.assets[] | select(.name | contains("linux") and contains("amd64") and contains("tar.gz")) | .browser_download_url' latest_release.json || \
jq -r '.assets[0].browser_download_url' latest_release.json); \
echo "Downloading from: $URL"; \
[ -n "$URL" ] || { echo "Error: Failed to find download URL"; exit 1; }; \
curl -L -o linux-amd64.tar.gz "$URL"; \
tar -xzf linux-amd64.tar.gz; \
rm linux-amd64.tar.gz; \
# 验证文件是否成功下载
ls -la; \
[ -f rustdesk-api ] || { echo "Error: rustdesk-api binary not found"; exit 1; }
# 暴露应用端口(根据实际应用调整)
EXPOSE 8080
# 设置容器启动命令(根据实际应用调整)
CMD ["./rustdesk-api", "--config", "config.toml"]