Initial commit
This commit is contained in:
48
README.md
48
README.md
@@ -1,3 +1,49 @@
|
||||
# speed-data-docker
|
||||
|
||||
Docker container for Speed test app
|
||||
Debian-based Docker image that runs hourly network speed tests (using speedtest-cli) and serves a simple web UI.
|
||||
|
||||
What the container provides
|
||||
- Base: debian
|
||||
- Installs: speedtest-cli
|
||||
- Runs: a cron job to execute `run_speed_test.sh` hourly
|
||||
- Serves: `index.html` and generated JS files on port 8080 via busybox httpd
|
||||
|
||||
Files added/edited
|
||||
- `Dockerfile` - builds the image
|
||||
- `start.sh` - entrypoint: starts cron and httpd
|
||||
- `run_speed_test.sh` - existing script (copied into image)
|
||||
|
||||
Build locally
|
||||
Make sure Docker is installed locally. From the project root run:
|
||||
|
||||
```bash
|
||||
docker build -t speed-data-app .
|
||||
```
|
||||
|
||||
Run container
|
||||
|
||||
```bash
|
||||
# Run with a named Docker volume (recommended). The container serves on $PORT inside the container
|
||||
# (default 8080). Map a host port to the container port with -p <host_port>:<container_port>.
|
||||
docker volume create speed-data-volume
|
||||
docker run -d --name speed-data -e PORT=8080 -p 8080:8080 --restart unless-stopped \
|
||||
-v speed-data-volume:/var/www/data/speed \
|
||||
speed-data-app
|
||||
|
||||
# Or run with a host bind mount (for direct access to files on the host):
|
||||
docker run -d --name speed-data -e PORT=8080 -p 8080:8080 --restart unless-stopped \
|
||||
-v /path/on/host/speed-data:/var/www/data/speed \
|
||||
speed-data-app
|
||||
```
|
||||
|
||||
Verify
|
||||
- Visit http://localhost:8080 to view `index.html` (which reads `speedtest.js` and `speedtest.short.js`).
|
||||
- Cron runs at minute 0 every hour. Logs go to `/var/log/cron.log` inside the container.
|
||||
|
||||
Notes
|
||||
- Data files (`speedtest.js`, `speedtest.short.js`, and the raw JSON file) are written to `/var/www/data/speed` inside the container. That path is declared as a Docker VOLUME in the `Dockerfile` so you can mount a named volume or a host directory.
|
||||
- If you mount a host directory, ensure the directory is writeable by the container process. You can either:
|
||||
- run the container as root (not recommended), or
|
||||
- chown/chmod the host directory appropriately (e.g., `chown 1000:1000 /path/on/host` or `chmod a+rw /path/on/host`) so the container can write files.
|
||||
|
||||
Reminder: I built the image successfully after you started Docker locally. If you'd like, I can remove/recreate the container on your machine; tell me to proceed and I'll run the commands here.
|
||||
|
||||
Reference in New Issue
Block a user