Speedtest 项目启动与配置教程
1. 项目目录结构及介绍
speedtest/
├── .github/
│ └── workflows/
│ └── demo.yml
├── Dockerfile
├── LICENSE
├── README.md
├── speedtest.sh
└── img/
.github/workflows/
: 存放 GitHub Actions 的配置文件,用于自动化项目流程。Dockerfile
: Dockerfile 文件用于构建包含 Speedtest CLI 的 Docker 容器镜像。LICENSE
: 项目使用的 MIT 许可证文件。README.md
: 项目说明文件,包含项目信息和如何使用。speedtest.sh
: 脚本文件,用于执行 Speedtest CLI 命令。img/
: 存放项目相关的图像文件。
2. 项目的启动文件介绍
项目的启动主要通过 Dockerfile
文件来构建一个 Docker 容器,该容器内包含了 Speedtest CLI 工具。以下是 Dockerfile
的内容:
# 使用官方的 alpine 基础镜像
FROM alpine:latest
# 安装 Speedtest CLI
RUN apk add --no-cache curl
# 复制 speedtest.sh 脚本到容器中
COPY speedtest.sh /speedtest.sh
# 给脚本执行权限
RUN chmod +x /speedtest.sh
# 设置工作目录
WORKDIR /speedtest
# 容器启动时执行脚本
CMD ["/speedtest.sh"]
要启动项目,你可以使用以下 Docker 命令:
docker run --rm robinmanuelthiel/speedtest:latest
这会运行 Docker 容器并执行 speedtest.sh
脚本,从而开始网络速度测试。
3. 项目的配置文件介绍
项目的配置主要通过环境变量来完成。你可以在运行 Docker 容器时通过 --env
参数来设置这些环境变量。以下是一些可用的环境变量及其默认值:
LOOP
: 是否循环执行 Speedtest,默认为false
。LOOP_DELAY
: 循环执行的延迟时间(秒),默认为60
。DB_SAVE
: 是否将结果保存到 InfluxDB,默认为false
。DB_HOST
: InfluxDB 的主机地址,默认为http://localhost:8086
。DB_NAME
: InfluxDB 数据库名称,默认为speedtest
。DB_USERNAME
: InfluxDB 用户名,默认为admin
。DB_PASSWORD
: InfluxDB 密码,默认为password
。SPEEDTEST_SERVER_ID
: 指定 Speedtest 服务器 ID,默认为none
。SPEEDTEST_HOSTNAME
: 指定 Speedtest 服务器的完全限定域名,默认为none
。
以下是一个设置环境变量的 Docker 命令示例:
docker run --rm -e LOOP=true -e LOOP_DELAY=300 robinmanuelthiel/speedtest:latest
这个命令会将 Speedtest 设置为每 5 分钟执行一次。如果你想将结果保存到 InfluxDB,还需要设置相关的数据库环境变量。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考